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



我正在尝试从条形码扫描仪读取输入,该扫描仪的行为类似于使用hidapi的键盘(https://github.com/signal11/hidapi)。显然,操作系统不允许我访问扫描仪,因为它的行为就像键盘,出于安全原因,操作系统拥有所有的键盘和鼠标设备。此条形码扫描仪的制造商不提供任何驱动程序。有没有办法防止操作系统拥有这个条形码扫描仪,或者把它变成串行端口并从中读取?

如果没有解决办法,有人知道一个便宜的条形码扫描仪,它的行为不像键盘,这样我就可以使用hidapi访问它吗?或者我怎么知道条形码的行为不会像键盘?这是一个非常具体的问题,大多数卖家都不知道如何回答。

谢谢。

只模拟键盘输入的设备,如条形码扫描仪,没有编程控制的方法,而不是游戏控制器等交互式设备。

您只需等待条形码数据作为键盘输入数据被通知。

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

许多键盘输入条形码扫描仪都能够自定义前缀/后缀代码,这些代码被附加到正面和背面以识别条形码数据输入。

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

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

您所说的"OS"是指Windows吗?其他操作系统通常提供一种拦截击键的方法。例如,Linux有输入子系统,它允许您截获键盘事件,如按键被按下和释放。不幸的是,这些将由您自己转换为ASCII/UTF-8字符。

无论操作系统如何,一个更简单的选择可能是寻找一个模拟USB串行设备的条形码扫描仪。在Windows中,这在系统中显示为COMx,在Linux中显示为/dev/ttyUSBx。然后,您可以使用串行端口库从中读取数据,而不必担心键盘焦点。

相关内容

最新更新