我有一个带USB接口的条码扫描器,因此它显示为HID。
我必须断开第一个字符的原因。
这将我的Delphi IDE放在前面,它在断点处停止,其余的条形码被注入到我的代码中,好像它是在键盘前面键入的那样(在某种程度上,键盘就像USB扫描仪只是另一个HID)。
有什么方法可以避免这种情况吗?或者添加一个关于输入源的初始检查?
我非常讨厌我现在正在寻找带有RS232接口的扫描仪。
答案 0 :(得分:1)
问题是HID“设备”以称为“reports”的数据包的形式将信息发送回计算机。
对于磁条扫描或条形码扫描程序,“report”包含整个编号。
也就是说,您不会逐个字符地收到报告,而是一次收到整个字符串。 (如果是轻扫,您将在同一报告中收到所有两个或三个曲目。)
因此,您的代码不会在第一个字符“上打破”,它会在整个报告中“。事实上剩下的角色在那里你可以认为是奖金(如果你不想看它们你没有必要)。但是您不会再收到后续字符的“报告”。
我无法想象你不想想立即知道条形码的任何理由。但是大多数磁条扫描和条形码扫描仪都可以配置为模拟键盘,而不是通用的HID设备。在这种情况下,您将收到多条WM_KEYDOWN
条消息。