Podsystem wejściowy Linux składa się z trzech części: warstwy sterownika, warstwy rdzenia podsystemu wejściowego i warstwy przetwarzania zdarzenia. i klawiatura lub inne zdarzenie wejściowe są opisane przez input_event
.
użycie poniżej kod i wpisać w terminalu python filename.py | grep "keyboard"
#!/usr/bin/env python
#coding: utf-8
import os
deviceFilePath = '/sys/class/input/'
def showDevice():
os.chdir(deviceFilePath)
for i in os.listdir(os.getcwd()):
namePath = deviceFilePath + i + '/device/name'
if os.path.isfile(namePath):
print "Name: %s Device: %s" % (i, file(namePath).read())
if __name__ == '__main__':
showDevice()
powinieneś dostać Name: event1 Device: AT Translated Set 2 keyboard
. następnie użyć
#!/usr/bin/env python
#coding: utf-8
from evdev import InputDevice
from select import select
def detectInputKey():
dev = InputDevice('/dev/input/event1')
while True:
select([dev], [], [])
for event in dev.read():
print "code:%s value:%s" % (event.code, event.value)
if __name__ == '__main__':
detectInputKey()
evdev
to pakiet zapewnia powiązania do rodzajowego interfejsu zdarzeń wejścia w Linuksie. Interfejs evdev służy do przekazywania zdarzeń generowanych w jądrze bezpośrednio do przestrzeni użytkownika za pośrednictwem urządzeń znakowych, które zazwyczaj znajdują się w /dev/input/. I select
jest select
.
co próbujesz osiągnąć jako takie? –
Próbuję ustawić własny detektor zdarzeń za pomocą tylko kodu klucza. Niektóre rzeczy jak poniżej: keyboard_listener ('0x24', custom_event_listener()) – Rome
istnieje istniejące rozwiązanie pykeylogger. – georgexsh