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