Hệ thống con đầu vào Linux bao gồm ba phần: lớp trình điều khiển, lớp lõi hệ thống con đầu vào và lớp xử lý sự kiện. và bàn phím hoặc sự kiện đầu vào khác được mô tả bởi input_event
.
sử dụng dưới mã và gõ vào Terminal 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()
bạn sẽ nhận được Name: event1 Device: AT Translated Set 2 keyboard
. sau đó sử dụng
#!/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
là một gói phần mềm cung cấp bindings vào giao diện sự kiện đầu vào chung trong Linux. Giao diện evdev phục vụ mục đích truyền các sự kiện được tạo ra trong hạt nhân trực tiếp tới không gian người dùng thông qua các thiết bị ký tự thường nằm trong /dev/input/.and select
là select
.
bạn đang cố gắng đạt được điều gì? –
Tôi đang cố gắng đặt trình xử lý sự kiện của riêng mình chỉ sử dụng số mã khóa .some như sau: keyboard_listener ('0x24', custom_event_listener()) – Rome
có một giải pháp pykeylogger hiện có. – georgexsh