1

我希望我的 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))
4

0 回答 0