我必须根据我从BarCode枪而不是键盘键事件获得的键事件来设置对文本字段的关注。我应该如何区分这些关键事件?
答案 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/
它可能无法帮助您隔离输入的差异,但我认为它值得一试。