如何区分键盘和条码枪之间的关键事件

时间:2009-09-15 08:03:06

标签: java

我必须根据我从BarCode枪而不是键盘键事件获得的键事件来设置对文本字段的关注。我应该如何区分这些关键事件?

4 个答案:

答案 0 :(得分:4)

根据我的经验,这是不可能的。

不是没有一点魔法。例如,如果使用条形码扫描仪扫描某些内容,文本的输入速度将比任何人类可能的类型快得多,但仍然比复制/粘贴速度慢。

分析速度和内容。

当您想要扫描可验证的条形码时,它变得非常容易。

last_up = 0
input_cache = ""

key_up(key) {
  if ((time.now() - last_up) > 1) {// seconds
     input_cache = ""
     last_up = 0
  } else {
    input_cache += key
    if (IsValidBarcode(input_cache)) {
      doSomething()
    }
  }
  last_up = time.now()
}

答案 1 :(得分:4)

许多条形码阅读器可以配置为在条形码的实际内容之前发送前缀。此前缀可以是字符串,也可以是特定的键击(例如 F12 Ctrl + B )。

您可以使用此功能检测传入的条形码。

答案 2 :(得分:1)

我猜你无法区分真正的按键和条形码枪产生的按键事件。我的条形码枪是旧的,它挂在键盘和电脑之间。电脑不知道条形码枪就在那里。

我唯一的建议是你可以分析输入流并寻找条形码典型的字符串。可能不那么容易。

答案 3 :(得分:0)

它是桌面应用程序吗?

如果它是一个Web应用程序,jQuery热键插件可能会有用: http://code.google.com/p/js-hotkeys/

它可能无法帮助您隔离输入的差异,但我认为它值得一试。