如何在不使用文本框的情况下从vb.net中的条形码扫描仪读取输入?

前端之家收集整理的这篇文章主要介绍了如何在不使用文本框的情况下从vb.net中的条形码扫描仪读取输入?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的程序已经正常工作,我使用TextBox捕获条形码扫描仪输入.我的程序的目的是用于时间和考勤监控,问题是我想阻止用户使用键盘输入他们的ID,因为它会使条形码扫描器和他们的ID与条形码无用.

*我已经尝试从计算机上取下键盘,它确实有效,但键盘不能作为要求删除

选项1:

获取连接到串行端口的条形码扫描器(通过COM端口读取的原始串行设备).由于大多数条形码扫描仪模拟键盘敲击,因此无法直接区分条形码扫描仪输入和键盘输入(请参阅下一个选项)而不会进入低级别(请参阅上次更新).

一个连接到串行端口(或通过USB模拟一个串行端口不再常见)使您可以完全控制输入的来源.

选项2:

计算按时间键入的字符数.与键入相比,条形码扫描器可以非常快速地注入序列(线).通过计算按键来测量文本框中使用的时间(使用CR LF作为测量点,因为这些也是由扫描仪发送的)可以为您提供一种方法来区分人类是否正在键入(除非有一个人快速打字) f)或注入内容.如果超时则只是拒绝/清除输入.

此外,条形码的校验和(如果使用包含该条形码的条形码)可用于在时间测量之外进行额外验证.

(您可以通过覆盖ctrl v来检测粘贴,如下一个选项中所示).

选项3:

组合选项2但不是在文本框中进行测量,而是使用ProcessCmdKey()函数(通过覆盖它)并测量文本框是否具有焦点.这样,您可以先缓冲输入,测量时间,如果在设置的超时值内,则将行注入文本框.

更新:

选项4:

这也许是一个不错的选择:
http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/

备选案文5:非技术方法

可用性改进:在视觉上非常清楚,条形码必须使用扫描仪输入而不是键入.我包括作为一个选项,因为它很简单,如果正确也有效(不幸的是,没有正确答案的正确答案).

接近可能包括f.ex.文本框中的水印(“不要键入,扫描!”或该顺序中的某些内容).给它一个不同的颜色,边框,大小等,以区别于普通的文本框,并提供一个随时关联和提供的帮助文本,以提高清晰度.

原文链接:https://www.f2er.com/vb/255930.html

猜你在找的VB相关文章