2010-09-07 13 views
2

Je souhaite utiliser la classe java.awt.Robot pour implémenter un clavier virtuel. Je me demande s'il y a un moyen d'envoyer le code clé avec l'emplacement de la clé (gauche ou droite) en utilisant la méthode keyPress(int). Si vous ajoutez un KeyListener à un élément awt, un KeyEvent déclenché par ctrl ou shift a une information s'il s'agissait du bouton gauche ou droit.Java awt.Robot: envoyer la clé avec la position par exemple. droite ou Ctrl droite

Docs dit:

codes clés qui ont plus d'une clé physique qui leur sont associés (par exemple KeyEvent.VK_SHIFT pourrait signifier la touche Maj gauche ou à droite) tracera à la clé gauche »

.

mais est-il vraiment aucun moyen d'envoyer un décalage vers la droite pressé? Certaines applications (par exemple. VirtualBox) ont besoin de ces boutons à droite (vous, vous pouvez configurer ces applications, mais c'est pas d'option pour un clavier virtuel).

Alors ... existe-t-il un moyen de le faire avec la classe Robot? Existe-t-il une méthode alternative pour envoyer des événements clés plus spécifiques dans Java?

Répondre

0

Après plus de recherche je pense actuellement que java.awt.Robot pourrait ne pas être le bon choix. Il y a des problèmes connus qui envoient des touches spéciales comme les trémas allemands qui n'ont pas de code clé dans la jvm.

Donc, je réponds moi-même à cette question avec "Il n'y a aucun moyen de le faire avec la classe Robot".

+0

Il serait bon de savoir comment vous avez résolu cela à la fin :-) – Grodriguez

+0

Je ne suis pas sûr si vous voulez vraiment le savoir (moche, sale, beaucoup de code), mais ^^ Je sais utiliser Synergy (http : //synergy-foss.org/). Le client synergie se connecte à mon instance java. L'instance java envoie alors des paquets de données de synergie. J'ai inspecté le trafic de synergie avec wireshark car je n'ai trouvé aucune spécification de protocole ... Le problème principal est que je dois mapper chaque événement de clé ou souris à un événement de synergie (pas de solution automatique) ... et il y a beaucoup de clés sur clavier;) Toujours pas trouvé de solution basée sur Java. – hacksteak25

+0

Intéressant. Merci beaucoup. – Grodriguez

Questions connexes