我有一个带有 USB 接口的条形码扫描仪,所以它显示为 HID。
我必须在第一个字符上断点是有原因的。
这将我的 Delphi IDE 带到了前面,它在断点处停止,其余的条形码被注入到我的代码中,就好像它是在键盘前面输入的一样(在某种程度上,它有,因为 USB 扫描仪是只是另一个 HID)。
有没有办法避免这种情况?或者添加对输入源的初始检查?
这让我非常恼火,以至于我现在正在寻找带有 RS232 接口的扫描仪。
我有一个带有 USB 接口的条形码扫描仪,所以它显示为 HID。
我必须在第一个字符上断点是有原因的。
这将我的 Delphi IDE 带到了前面,它在断点处停止,其余的条形码被注入到我的代码中,就好像它是在键盘前面输入的一样(在某种程度上,它有,因为 USB 扫描仪是只是另一个 HID)。
有没有办法避免这种情况?或者添加对输入源的初始检查?
这让我非常恼火,以至于我现在正在寻找带有 RS232 接口的扫描仪。
问题在于 HID“设备”以称为“报告”的数据包的形式将信息发送回计算机。
在磁刷或条形码扫描仪的情况下,“报告”包含整个数字。
也就是说,您不会收到逐个字符的报告,而是一次收到整个字符串。(如果是 mag-swipe,您将在同一份报告中收到所有两个或三个曲目)。
所以你的代码不会破坏“第一个字符”,它会破坏“整个报告”。剩下的角色都在那里,您可以将其视为一种奖励(如果您不想查看它们,则不必查看)。但是您不会再收到后续字符的“报告”。
我无法想象您为什么不想立即知道条形码的任何原因。但是大多数磁卡和条形码扫描仪都可以配置为模拟键盘,而不是通用 HID 设备。在这种情况下,您将收到多WM_KEYDOWN
条消息。