从行为类似于键盘的USB HID设备读取

时间:2019-11-03 19:53:15

标签: windows keyboard barcode-scanner hid

我正在尝试使用hidapi(Q-object [Django-doc])读取行为类似于键盘的条形码扫描仪的输入。显然,该操作系统不允许我访问扫描仪,因为它的行为类似于键盘,并且出于安全原因,该操作系统拥有所有键盘和鼠标设备。此条形码扫描仪的制造商不提供任何驱动程序。有什么方法可以防止操作系统拥有此条形码扫描仪,或者可以将其变成串行端口并从中读取信息?

如果没有解决方法,有人知道廉价的条形码扫描仪不像键盘那样工作,以便我可以使用hidapi进行访问吗?或者我怎么知道条形码不会像键盘一样工作?这是一个非常具体的问题,大多数卖家不知道如何答复。

谢谢。

2 个答案:

答案 0 :(得分:0)

仅模拟键盘输入的设备(例如条形码扫描仪)没有编程控制的方法,而没有诸如游戏控制器之类的交互式设备。

您只需要等待条形码数据作为键盘输入数据得到通知即可。

即使您不拥有该设备,它也会通知您。换句话说,您需要拥有键盘焦点。这是Windows的普通编程知识。

许多键盘输入条形码扫描仪都可以自定义前后附加的前缀/后缀代码,以识别条形码数据输入。

可以通过阅读设置条形码进行自定义。

在应用程序中逐一检查所通知的键码,如果出现特殊数据,请将其视为条形码数据。

答案 1 :(得分:0)

“ OS”是指Windows吗?其他操作系统通常提供拦截按键的方法。例如,Linux具有 input 子系统,该子系统可让您拦截键盘事件,例如按下和释放键。不幸的是,这些让您自己转换为ASCII / UTF-8字符。

一个简便的选择,与操作系统无关,可能是寻找模仿USB串行设备的条形码扫描仪。在Windows中,该名称在系统中将显示为COMx,在Linux中将其显示为 / dev / ttyUSBx 等。然后,您可以使用串行端口库从其中读取数据,而不必担心键盘焦点。