"Windows Key" + "Otra tecla" - Java no detecta "otra clave"
-
26-10-2019 - |
Pregunta
¿Hay alguna solución que corresponda al problema del tema? Si presiono la tecla de EG Windows + Space, obtengo:
KeyTyped: Windows
Supongo que debería ser:
KeyTyped: Windows
KeyTyped: espacio
Relaborado con teclas: Windows
Relaborado con teclas: espacio
Mi código:
<Java component>.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
e.consume();
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("keyTyped: " + KeyEvent.getKeyText(e.getKeyCode()));
e.consume();
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("keyReleased: " + KeyEvent.getKeyText(e.getKeyCode()));
e.consume();
}
});
¡Gracias!
Solución
WINDOWS + Space
es una tecla de acceso rápido global válida para el sistema de Windows y, por lo tanto, no está notificando a su programa (y nunca lo hará). Detecta el primer accidente cerebrovascular porque WINDOWS
La clave no es una tecla de acceso rápido (y solo desarrolla el menú de inicio al lanzamiento). Esa es la razón por la que tampoco obtienes la versión.
No sé si Java permite ganchos en todo el sistema, pero probablemente tendrás que meterse con JNI, lo que supongo que no quieres lidiar.