我希望我的 python 脚本只收听被检测为键盘的 QR 码阅读器。我不希望键盘写入控制台或某处。在 Linux 上,只有 python 脚本应该听那个键盘。那可能吗?是否有库或 udev 规则可以防止此类事情发生?
while True:
qr_code = input()
logging.info(qr_code)
我也试过 python-evdev。我只能绑定到带有dev.grab_context():
. 它可以工作并接收单键事件,但我没有映射。所以input()
对我来说是最简单的方法。
qr_device_path = None
qr_device_name = "SM SM-2D PRODUCT HID KBW"
qr_device_phys = None
devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
# QR Code Reader name: SM SM-2D PRODUCT HID KBW
for device in devices:
print(device.path, device.name, device.phys)
if(device.name == "SM SM-2D PRODUCT HID KBW"):
logging.info("found qr code reader")
qr_device_path = device.path
qr_device_phys = device.phys
if(qr_device_path):
dev = InputDevice(qr_device_path)
while True:
for event in dev.read_loop():
if event.type == ecodes.EV_KEY:
print(categorize(event))