我有兩個USB鍵盤插在同一臺機器上。我正在開發一個Java應用程序。無論如何,允許Java應用程序分離出它來自哪個USB鍵盤? (即有類似http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html但帶有USB參數,所以我可以知道它來自哪個USB設備?)Java獨立輸入兩個單獨的鍵盤
謝謝!
我有兩個USB鍵盤插在同一臺機器上。我正在開發一個Java應用程序。無論如何,允許Java應用程序分離出它來自哪個USB鍵盤? (即有類似http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html但帶有USB參數,所以我可以知道它來自哪個USB設備?)Java獨立輸入兩個單獨的鍵盤
謝謝!
這不適用於Java。
但有些第三方工具可以重新映射鍵盤的按鍵。 HID macros是一個應用程序。但它只能用於按鍵,而不是按鍵和按鍵事件。這限制了它的用處,但對於你的用例可能已經足夠了。
如果你想深入挖掘,你需要在Windows上使用RAW Input API來做你想做的事情。在代碼項目Using Raw Input from C# to handle multiple keyboards上已經有一個很好的例子,它闡明瞭正確的API使用情況。
我可能來不及回答,因爲這個問題是舊的。但既然我在這裏尋找相同的要求,我就會提到一個解決方案,我在另一個線索上找到了一些解決方案,以便將來在這裏指導的人們尋求幫助,尋求相同需求的幫助。 @nan給出了一個使用java-hid-api的解決方案,你可以找到他的答案here。他還寫了一篇關於如何做in his blog的清晰步驟帖子。
但是我必須說,我試過這個但仍然沒有成功,因爲HIDManager
在試圖通過路徑或ID打開HID時返回null。使用HIDDeviceInfo
嘗試open()
時也是如此。此問題也在java hid api page中列出,但目前爲止似乎還沒有人能夠提供可行的解決方案。所以如果有人能夠繞過這個問題。請分享。
如果您在Windows上運行,那麼您無法打開HID鍵盤的原因是因爲操作系統將打開所有HID鍵盤以供*獨佔使用*。請參閱此MSDN文章以供參考。 https://msdn.microsoft.com/en-us/library/windows/hardware/jj128406%28v=vs.85%29.aspx。根據不同Java HID實現的README,上述問題的解決方法是繞過HID並轉到較低級別的USB API。 https://github.com/gary-rowe/hid4java。 – HairOfTheDog
我會投這個答案,但我缺乏15這樣做的聲譽。 – user1383359
哈哈,沒關係。感謝您接受它。希望解決方案適合你。 – Simon