2017-09-12 5 views
0

필자의 USB 카드 리더 (USB 키보드처럼 작동)에서 문자열을 감지하고 파일에 기록하는 Python 프로그램을 작성했습니다. 프로그램을 실행하기 위해 ssh를 사용하면 프로그램이 작동하지 않는다는 것을 깨달았습니다. 내 생각 엔 내 프로그램은 원시 입력을 콘솔에 입력했기 때문에 ssh를 통해 켜면 작동하지 않는다. 아무도 이것에 나를 도울 수 있습니까?ssh를 통해 USB Magstripe 리더를 읽으십시오

import datetime 
import time 

card = raw_input() 
t = datetime.datetime.now() 
while True: 
    f = open("Laptop Sign Out" + '.txt', 'a') 
    f.write("Card Number: " + card[1:10] + " Time: " + t.strftime("%m-%d-%Y $ 
    f.write('\n') 
    f.write(';') 
    f.write('\n') 
    f.close() 
    time.sleep(5) 

답변

0

당신은 사용자 코드에 직접 커널에서 발생하는 이벤트를 재전송 할 수 있습니다 evdev 라이브러리를 사용할 수 있습니다

다음은 내 프로그램입니다. 이 예에서

봐 :

>>> from evdev import InputDevice, categorize, ecodes 
>>> dev = InputDevice('/dev/input/event1') 

>>> print(dev) 
device /dev/input/event1, name "Dell Dell USB Keyboard", phys "usb-0000:00:12.1-2/input0" 

>>> for event in dev.read_loop(): 
...  if event.type == ecodes.EV_KEY: 
...   print(categorize(event)) 
... # pressing 'a' and holding 'space' 
key event at 1337016188.396030, 30 (KEY_A), down 
key event at 1337016188.492033, 30 (KEY_A), up 
key event at 1337016189.772129, 57 (KEY_SPACE), down 
key event at 1337016190.275396, 57 (KEY_SPACE), hold 
key event at 1337016190.284160, 57 (KEY_SPACE), up 

추가 독서가 here

이다는 조금 다른 방법으로는 here

설명