gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:04:11 26 4
gpt4 key购买 nike

我的程序已经运行良好,我使用 TextBox 来捕获条形码扫描仪输入。我的程序的目的是用于时间和考勤监控,问题是我想阻止用户使用键盘输入他们的 ID,因为它会使条形码扫描器和他们的带有条形码的 ID 变得无用。

*我已经尝试从计算机上卸下键盘并且它确实有效,但不能根据要求卸下键盘...

最佳答案

选项 1:

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

连接到串行端口的一个(或通过 USB 模拟的一个,因为串行端口不再那么常见)让您可以完全控制输入的来源。

选项 2:

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

此外,除了时间测量之外,条形码的校验和(如果您使用包含该条形码的校验和)还可用于执行额外的验证。

(您可以在下一个选项中覆盖 ctrl + v 来检测粘贴)。

选项 3:

结合选项 2 但不是在文本框中进行测量,而是进入 ProcessCmdKey() 函数(通过覆盖它)并在文本框具有焦点时进行测量。通过这种方式,您可以首先缓冲输入、测量时间,如果在设定的超时值内,则将该行插入文本框。

更新:

选项 4:一种非技术方法 -

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

接近可能包括 f.ex。文本框中的水印(“不要输入,扫描!”或按此顺序排列的内容)。赋予它不同的颜色、边框、大小等,以将其与普通文本框区分开来,并始终关联并提供帮助文本,以提高清晰度。

关于vb.net - 如何在不使用文本框的情况下从 vb.net 中的条码扫描仪读取输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14134126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com