2

我正在使用扫描仪读取条形码,我有以下问题:

  • 有没有办法区分键盘输入和扫描仪输入?这对我来说是必需的,因为条形码阅读器将包含前导码、终止符和条形码值的前缀。例如,如果值为 12345,则条形码将具有 \pre12345\,其中 \ 和 \ 表示开始和结束,并且 pre 标识数据的类型。如果我知道数据是从键盘而不是扫描仪输入的,那么我会显示用户输入的任何内容。如果我知道数据来自扫描仪,那么我将去掉 \pre 和 \ 并只显示数据。

谢谢,

4

3 回答 3

2

我的回答假设您在“键盘楔形”模式下使用条形码扫描仪,它只是模拟键盘并且没有一些特殊连接。这些设备通常是 USB 并且开箱即用,无需任何进一步配置。

用户是否有机会实际键入您的\pre文本?通常,前缀被专门选择为一组用户永远不会输入或至少很少想要输入的字符。因此,仅存在前缀就表示扫描的条形码。

另一种选择是对输入进行计时。例如,来自条码扫描器的输入可能会在很短的时间内(例如 50 毫秒)内全部完成。如果用户通过键盘输入值,他/她不可能在 50 毫秒内输入前缀、数据和后缀。(当然,这里的假设是输入将由实际的人而不是自动化工具进行)

于 2009-08-25T17:30:52.853 回答
0

嗯,是!来自条码扫描器的输入应该首先通过 COM 端口或串行连接进行自我初始化。我知道许多应用程序通过特定端口限制对某些字段的输入,但除此之外我不确定。

于 2009-08-25T01:43:38.277 回答
0

我想出的一个解决方案是用用户不知道的唯一字符序列开始我们所有的条形码。我检查输入中的这个序列,告诉我数据是如何输入的。

于 2009-12-16T15:35:55.170 回答