我有一个USB条形码扫描仪,我使用这个库创建了一个带java的阅读器: https://github.com/kwhat/jnativehook
我的阅读器使用全局挂钩,并根据键入的速度检测数据何时来自条形码扫描器。这实际上非常准确。 这个阅读器在后台工作。当我读取任何条形码时,它会对它进行一些操作并在数据库中注册一些值(与问题无关)。
碰巧使用钩子,当我扫描某些东西时,他们的按键事件被聚焦程序(铬,字等)捕获,并且条形码上的数字显示在其上。如果你在另一个人使用扫描仪时试图写一个文件或其他东西,这真的很烦人。
无论如何,使用这个或另一个java库来阻止键盘事件传播? 我想捕获所有键盘事件,消耗它们,如果我的应用程序检测到它们不是来自条形码扫描器,那么它将重新创建事件并将其发送到其他程序以捕获。
感谢。
答案 0 :(得分:1)
如果您使用的是Windows或OS X,则可以使用JNativeHook来使用事件.Linux不支持该功能,因此它不是官方支持的功能。请参阅:https://github.com/kwhat/jnativehook/wiki/ConsumingEvents