Java分开输入两个独立的键盘

时间:2012-05-09 01:34:27

标签: java usb

我有两个USB键盘插在同一台机器上。我正在开发一个Java应用程序。是否有允许Java应用程序分离出它来自哪个USB键盘? (即有类似http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html但有USB参数的东西,所以我可以知道它来自哪个USB设备?)

谢谢!

2 个答案:

答案 0 :(得分:5)

单独使用Java是不可能的。

但是有第三方工具可以重新映射键盘的键。 HID macros是一个应用程序。但它只适用于按键,而不是按键和下行事件。这限制了它的实用性,但可能足以满足您的使用需求。

如果您想深入挖掘,则需要使用Windows上的RAW Input API来执行您想要的操作。已经有一个标题为Using Raw Input from C# to handle multiple keyboards的代码项目的一个很好的例子,可以说明正确的API用法。

答案 1 :(得分:4)

我可能来不及回答,因为这个问题很旧。但是,当我在寻找相同的要求时,我被引导到这里,我将提到我在另一个线程中找到的解决方案,以帮助那些将来会在这里指导的人,寻求相同要求的帮助。 @nan使用java-hid-api给出了一个解决方案,你可以找到他的答案here。他还写了一篇关于如何做到这一点in his blog的明确的分步报道。

但是我必须说我已经尝试了这个但是我还没有成功,因为HIDManager在尝试通过路径或id打开HID时返回null。尝试open()使用HIDDeviceInfo时也是如此。此问题也在java hid api page中列出,但似乎到目前为止还没有人能够提供有效的解决方案。所以,如果有人能够绕过这个问题。请分享。