【发布时间】:2011-11-22 15:43:52
【问题描述】:
如何禁用键盘输入并限制为仅使用 Java 的条形码阅读器?
【问题讨论】:
-
无法扫描条码怎么办?
-
系统不工作,实际上,我正在开发一个安全系统,并且该系统的主要方面之一是用户无法使用键盘输入他们的信息
如何禁用键盘输入并限制为仅使用 Java 的条形码阅读器?
【问题讨论】:
不幸的是,我认为这是不可能的,至少不能使用“仅 Java”。
我见过的大多数条形码阅读器看起来就像电脑的键盘。如果您使用的条形码阅读器不能“作为键盘”操作,并且可以与Java Communications API 一起使用,那么您还有一些额外的选择。否则,我假设您在此答案的其余部分使用键盘类型的扫描仪。
如果不是在某些为读取条形码阅读器输出而编写的软件中,我可以打开记事本,将光标放在窗口内,扫描条形码,#'s 将出现,就像我手动输入它们一样。
为了确定输入的字符来自条形码阅读器而不是键盘,您需要在较低级别与操作系统交互以确定使用的输入设备。据我所知,Java 没有为此提供任何 API。您需要使用 JNI 进行调查,然后必须根据支持的操作系统编写和维护它。
另一种可能性是某些扫描器会在扫描过程中生成特殊的标头数据。这可以配置到扫描仪中,也可以是条形码本身的一部分。在任何一种情况下,都可以注册一个键盘监听器来监听这个数据,然后适当地处理它。不幸的是,从安全角度来看,这并不能很好地工作,因为这意味着有其他方法可以重复输入此数据而无需实际扫描条形码。 (就此而言,如果担心安全问题,则使用条形码是错误的方法 - 因为条形码很容易被复制或生成。)
【讨论】: