Comment puis-je écrire un écouteur clé pour suivre toutes les frappes en Java?
Je veux écrire un écouteur en Java. Il doit suivre toutes les touches, indépendamment du fait que l'application Java est activé ou non. Est-ce possible?
source d'informationauteur Arghya Chakraborty
Vous devez vous connecter pour publier un commentaire.
C'est possible, mais nécessite une mise en œuvre en prenant avantage de JNI qui ne sera pas toujours portable.
Java Système De Crochet est une bibliothèque qui fonctionne avec Windows 32 & 64 bits.
J'ai utilisé quelque chose comme ça il y a longtemps. Jetez un oeil à Java Système De Crochet.
Il fait le suivi global des touches (et pas seulement de votre application Java) via JNI. Il a travaillé rapidement et parfaitement pour moi
Le KeyListener commence comme un fil de démon, qui ne permet pas de garder l'application en vie. Vous devez avoir un autre en cours d'exécution non-démon fil dans votre programme
Par exemple:
Non, Java n'a pas accès à la clé-coups à l'extérieur de sa fenêtre active.
Pour ce faire, vous devez utiliser une combinaison de Java en code natif et, en utilisant JNI pour appeler le code natif. Dans Microsoft Windows, vous devriez regarder
GetAsyncKeyState(key)
.C'est très possible, mais pas en utilisant le standard de Java, vous devez interagir avec le système d'exploitation sur un niveau d'origine.
Voici un sujet pour Windows qui utilise JNA pour accéder à la SetWindowsHookEx la fonction Windows API User32.
Non, Java n'écoute pas keystokes si elle n'est pas active (concentré) de la fenêtre, de sorte que vous ne pouvez pas le faire.
Essayer cette
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/javax/swing/KeyStroke.java
Le lien contient le code source de Java application swing.