我有一个带USB接口的条形码扫描器,所以它看起来像个HID。
我必须在第一个字符上断点是有原因的。
这就把我的Delphi带到了前面,它停在断点上,剩下的条形码被注入到我的代码中,就好像它是在键盘前面输入的一样(在某种程度上,它是这样的,因为USB扫描仪只是另一个HID)。
有什么办法可以避免这种情况吗?还是添加对输入源的初始检查?
这让我非常恼火,以至于我现在正在寻找一个带有RS232接口的扫描仪。
发布于 2012-05-08 21:27:09
问题是隐藏的“设备”以所谓的“报告”包将信息发送回计算机。
在使用mag或条形码扫描器的情况下,“报告”包含整号码。
也就是说,您不会一字不差地接收报告,而是同时接收整个字符串。(在使用mag的情况下,您将在同一报告中接收所有的两条或三条音轨)。
因此,您的代码不会中断“在第一个字符上”,而是“在整个报表上”。事实上,剩余的字符在那里,你可以认为是一个额外的(如果你不想看他们,你不需要)。但是您将不会收到更多后续字符的“报告”。
我想不出你为什么不想立刻知道条形码。但是大多数的磁刷和条形码扫描器可以配置成模拟键盘,而不是普通的HID设备。在这种情况下,您将收到多个WM_KEYDOWN消息。
https://stackoverflow.com/questions/9935381
复制相似问题