如何只通过一个Python进程使用usbhid设备?

2024-04-29 19:24:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个使用条形码扫描仪的后台应用程序。在我的linux操作系统上,条形码扫描仪被识别为USB HID(人机界面设备)设备。所以加载了默认的usbhid驱动程序,扫描仪的行为类似于键盘。在

我能够使用pyxhook Python模块读取扫描仪的STDIN内容。因此,即使我的进程在后台运行,我也可以从条形码扫描仪读取输入。在

我的问题是,后台应用程序也从常规键盘读取输入,因为它也会写入STDIN。在

我只想通过后台进程使用条形码扫描仪的STDIN,而忽略键盘等其他HID设备的STDIN,但我不知道如何实现这一点。有什么想法吗?在


Tags: 模块应用程序进程linuxstdin驱动程序键盘后台
1条回答
网友
1楼 · 发布于 2024-04-29 19:24:54

如果截获较低级别(evdev)的输入,则可以通过设备将其拆分。对于python,有python-evdev。 您可以根据名称筛选设备,然后从那里开始。一个缺点是您必须自己将evdev事件转换为可读的输入(内核通常会为您做这件事)。在

我已经编写了一个simple program,用于将条形码保存到一个文件中,以便在RPi上运行(对GS1-128/SSCC-128/EAN-128的额外支持)。在

相关问题 更多 >