2012-05-09 12 views

Respuesta

5

Esto no es posible solo con Java.

Pero hay herramientas de terceros que pueden reasignar las teclas de un teclado. HID macros es una aplicación. Pero solo funciona con presionar teclas, no con eventos de tecla arriba y abajo. Esto limita su utilidad, pero podría ser suficiente para su uso.

Si quiere profundizar necesita usar el RAW Input API en Windows para hacer lo que quiera. Ya hay un buen ejemplo en el proyecto de código titulado Using Raw Input from C# to handle multiple keyboards que arroja algo de luz sobre el uso correcto de la API.

+0

Yo votaría esta respuesta, pero me falta la reputación de hacerlo. – user1383359

+0

Jaja, está bien. Gracias por aceptarlo Espero que la solución funcione para ti. – Simon

4

Podría ser demasiado tarde para responder aquí ya que esta pregunta es antigua. Pero como he sido dirigido aquí cuando estaba buscando el mismo requisito, mencionaré una solución que encontré en otro hilo para la ayuda de aquellos que serán dirigidos aquí en el futuro, buscando ayuda para el mismo requisito. @nan ha dado una solución para esto usando java-hid-api y puede encontrar su respuesta here. También ha escrito una publicación clara y paso a paso sobre cómo hacerlo in his blog.

Sin embargo, debo decir que lo he intentado pero aun así no he tenido éxito, ya que HIDManager devuelve nulo al intentar abrir el HID por la ruta o el ID. Es lo mismo cuando se intentó open() usando HIDDeviceInfo. Este problema también figura en el java hid api page pero parece que nadie ha podido proporcionar una solución de trabajo hasta el momento. Entonces, si hay alguien que haya podido evitar este problema. Por favor comparte.

+0

Si está ejecutando en Windows, la razón por la que no puede abrir los teclados HID es porque el sistema operativo abre todos los teclados HID para su * uso exclusivo *. Vea este artículo de MSDN para referencia. https://msdn.microsoft.com/en-us/library/windows/hardware/jj128406%28v=vs.85%29.aspx. De acuerdo con el README para una implementación Java HID diferente, la solución al problema anterior es pasar por alto HID e ir a la API USB de nivel inferior. https://github.com/gary-rowe/hid4java. – HairOfTheDog

Cuestiones relacionadas