如何禁用键盘输入并限制仅使用Java的条形码阅读器?
答案 0 :(得分:4)
不幸的是,我不认为这是可能的,至少不能使用“只有Java”。
我见过的大多数条形码阅读器看起来就像计算机的键盘。如果您使用的条形码阅读器不能“作为键盘”使用,并且可以与Java Communications API一起使用,那么您可以在此处获得一些其他选项。否则,我假设您正在使用键盘式扫描仪来完成其余的答案。
如果不是在一些用于读取条形码阅读器输出的软件中,我可以打开记事本,将光标放在窗口内,扫描条形码,#就会出现就像我手动输入一样。
为了确定输入的字符来自条形码阅读器而不是键盘,您需要在较低级别与OS连接以确定使用了哪个输入设备。据我所知,Java没有为此提供任何API。您需要使用JNI进行调查,然后必须根据支持的操作系统编写和维护JNI。
另一种可能性是某些扫描仪会在扫描过程中生成特殊的标题数据。这可以配置到扫描仪中,或者可以是条形码本身的一部分。在任何一种情况下,都可以注册键盘侦听器来侦听此数据,然后适当地处理它。不幸的是,从安全角度来看,这并不能很好地工作,因为这意味着还有其他方法可以重复输入这些数据,而无需实际扫描条形码。 (就此而言,如果担心安全问题,则条形码是错误的方法 - 条形码很容易被复制或生成。)