2013-03-26 36 views
6

我有一个运行Windows7的工业触摸屏平板设备(此one)。 它有一个集成的RFID /条码扫描仪和相机。两者都可以通过硬件按钮启动。我想知道,只要按下其中一个按钮。 我用GlobalKeyEventListener编写了一个小测试应用程序,但没有事件被触发,当按下其中一个按钮时。所有正常的键盘事件都被触发。 有谁知道,如果以及如何在Java中访问这些类型的按钮事件?在告诉客户之前,我还应该尝试做什么,这是不可能的。 谢谢。如何访问Java中的硬件按钮

+0

如果按下,当你按普通键盘键,然后硬件钥匙未注册为一个虚拟键的特定键,触发没有触发事件。 我的建议是让事件监听器查看硬件按钮更改的属性,一旦它发生变化,您就可以采取行动。 – 2013-03-26 11:20:54

回答

1

有将是一些编程接口,用于监听这些按钮,这是不太可能有内置的Java虚拟机的连接。我会考虑写一个程序/服务/不管是听了这些按钮推动我可以编译成Windows DLL,然后我会从Java程序中调用DLL。 Windows DLL可以监听事物,Java类可以将自己注册为DLL的事件监听器。它不可能是微不足道的,对我来说最困难的部分是DLL程序本身(没有Java,C或C#或微软喜欢的东西),其次是Java本地接口或API或任何调用DLL的东西。

如果你得到那么多,我确实推荐一个我不记得的产品;它允许你在不使用任何JNI“粘合”代码的情况下调用DLL,也就是说,你曾经必须编写一组非常特定的规则来从Java调用C代码,而这个其他产品很好地完全消除了这种情况。

祝你好运。

+0

也看看JNA。 – Puce 2013-03-26 11:27:13

+0

取决于按钮的功能。我用一个非常简单的解决方案解决了类似的问题。在我的情况下,要么是去C/ASM,要么不断寻找财产变化。 在我的情况下,我能够运行我的应用程序作为后台进程的一部分,不断侦听注册表中的属性更改。每次按下按钮时都会发生这种情况,因为属性发生变化,我可以对其执行操作。 – 2013-03-26 12:08:21