Question

Je cherche depuis un moment et tout le monde semble penser que ce n’est pas possible avec Java uniquement, je vais donc tenter ma chance;)

Existe-t-il un moyen de laisser mon application Java écouter les événements (événements clés en particulier) pendant qu'une autre application non liée a le focus de fenêtre? Dans ma situation, je cherche à détecter le moment où l'utilisateur a appuyé sur la touche "Pause" du clavier, même si mon application Java n'a pas le focus.

J'ai entendu certaines personnes dire que le seul moyen est d'écrire du code C et d'utiliser JNI. Juste curieux de savoir si quelqu'un connaissait un moyen d'éviter cela? Ou, sinon, au moins un très bon tutoriel sur c / JNI?

Merci

Était-ce utile?

La solution

Je crois comprendre que cela ne peut être fait. Au niveau fondamental, la machine virtuelle Java ne génère des événements que pour les événements O / S qu’elle reçoit, et elle ne reçoit les événements d’entrée O / S que si elle a le focus.

Je suis sûr que vous pourriez utiliser JNI pour déclencher le système d'exploitation afin qu'il génère des événements pour toutes les entrées, mais cela dépendrait beaucoup du système d'exploitation.

Autres conseils

Voici la meilleure réponse que j'ai trouvée:

" Il existe une bibliothèque pour gérer le contrôle natif du clavier et de la souris: https://github.com/kwhat/jnativehook ) "

Je ne connais aucun moyen de contourner cela non plus. J'ai trouvé ce lien sur les forums de Java un bon exemple de configuration. JNI et faire un gestionnaire de clavier global (trop à ajouter ici). C’est un peu daté (2005), mais l’exemple semble assez complet pour vous aider à démarrer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top