2012-05-09 13 views

risposta

5

Questo non è possibile con Java da solo.

Ma ci sono strumenti di terze parti che possono rimappare i tasti di una tastiera. HID macros è un'applicazione. Funziona solo con la pressione di un tasto, non con key-up e -down. Questo limita la sua utilità ma potrebbe essere sufficiente per il tuo caso.

Se si desidera approfondire è necessario utilizzare il RAW Input API su Windows per fare ciò che si desidera. C'è già un bell'esempio sul progetto di codice dal titolo Using Raw Input from C# to handle multiple keyboards che fa luce sull'uso corretto dell'API.

+0

Vorrei votare questa risposta, ma mi manca la 15 reputazione per farlo. – user1383359

+0

Haha, va bene. Grazie per averlo accettato Spero che la soluzione funzioni per te. – Simon

4

Potrei essere in ritardo per rispondere qui poiché questa domanda è vecchia. Ma poiché sono stato diretto qui mentre cercavo lo stesso requisito, menzionerò una soluzione che ho trovato su un altro thread per l'aiuto di coloro che saranno diretti qui in futuro, in cerca di aiuto per lo stesso requisito. @nan ha fornito una soluzione per questo utilizzando java-hid-api e puoi trovare la sua risposta here. Ha anche scritto un messaggio chiaro e passo dopo passo su come farlo in his blog.

Tuttavia devo dire che ho provato questo, ma ancora non ho avuto successo in quanto il HIDManager restituisce null quando si tenta di aprire il HID dal percorso o l'id. È la stessa cosa quando provate a open() usando HIDDeviceInfo. Questo problema è elencato nello java hid api page ma sembra che nessuno sia stato in grado di fornire una soluzione di lavoro finora. Quindi, se c'è qualcuno che è stato in grado di aggirare questo problema. Per favore, condividi.

+0

Se si utilizza Windows, il motivo per cui non è possibile aprire le tastiere HID è perché il sistema operativo apre tutte le tastiere HID per il suo * uso esclusivo *. Vedere questo articolo MSDN per riferimento. https://msdn.microsoft.com/en-us/library/windows/hardware/jj128406%28v=vs.85%29.aspx. Secondo il README per una diversa implementazione di HID Java, la soluzione alternativa al problema precedente è ignorare HID e passare all'API USB di livello inferiore. https://github.com/gary-rowe/hid4java. – HairOfTheDog

Problemi correlati