依赖安装
pip3 install evdev
代码功能描述
InputDevice初始化时需要配置输入设备,一般在/dev/input目录下,可通过sudo cat /dev/input/*** 命令,然后按下按键,观察是否有输出确认是否是目标设备。
按下键盘按键后会在终端打印键值,通过Ctrl+C退出程序。
python代码
from evdev import InputDevice, categorize, ecodes
# 找到键盘设备,需要根据实际情况修改设备路径
device = InputDevice('/dev/input/by-id/usb-MosArt_USB_2.4G_Keyboard-event-kbd')
print(f'正在监听: {device.name}')
# 用于记录按键状态,识别组合键
ctrl_pressed = False
c_pressed = False
while True:
event = device.read_one()
if event:
if event.type == ecodes.EV_KEY:
key_event = categorize(event)
if key_event.keystate == key_event.key_down:
print(f'按下键: {key_event.keycode}')
if key_event.keycode == 'KEY_LEFTCTRL' or key_event.keycode == 'KEY_RIGHTCTRL':
ctrl_pressed = True
elif key_event.keycode == 'KEY_C':
c_pressed = True
elif key_event.keystate == key_event.key_up:
if key_event.keycode == 'KEY_LEFTCTRL' or key_event.keycode == 'KEY_RIGHTCTRL':
ctrl_pressed = False
elif key_event.keycode == 'KEY_C':
c_pressed = False
# 检查是否按下了 Ctrl + C 组合键
if ctrl_pressed and c_pressed:
print("检测到 Ctrl + C 组合键,停止监听")
break
执行代码
python3 代码文件名