如何在c#中的只读文本框字段中读取USB条形码设备的数据?
从条形码设备读取的所有可能方式都像标准键盘设备一样工作,这意味着必须启用文本框字段&可编辑的。
是否有任何标准方法可以从任何USB条形码设备读取数据(例如TWAIN和WIA用于成像设备)?或者我必须为每个条形码设备获取SDK以通过虚拟串口处理设备?
答案 0 :(得分:1)
我使用键盘原始输入成功完成了此操作。使用它进行操作的库可以在这里找到:http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard
P.S。但是这个库中的一些代码不正确。我想在github上分叉它并修复一些bug。我会在什么时候通知您。
使用示例:https://gist.github.com/frydaykg/0dd3c06e6e91c28d6a4e 和它的构造。我评论的一些细节:
var keyboardScaner = new KeyboardScaner(form, Session.KeyboardName);
答案 1 :(得分:1)
虽然键盘仿真是条形码阅读器输入的最常用方法,但串行仿真通常可以在完整的客户端场景中提供更好的结果。
原因是键盘仿真将条形码数据流合并到键盘输入流中,这使得难以将两者从处理的角度分开。您必须确保文本焦点位于扫描前所需的字段中,正如您所指出的,它必须是可写字段。
USB条形码阅读器的优势在于,只需简单的配置更改,大多数都可以从键盘切换到串行。您可能想尝试串行仿真,看看它是否能为您提供出色的结果。