Simuler une touche en Java
Je suis à la recherche de simuler l'action de la tenue d'une touche du clavier vers le bas pour une courte période de temps en Java. Je m'attends à ce que le code suivant, maintenez la touche pendant 5 secondes, mais il ne se presse une fois (pour produire un seul "a", lors de l'essai dans le bloc-notes). Aucune idée si j'ai besoin d'utiliser quelque chose d'autre, ou si je suis juste à l'aide de l'awt.Robot de classe mal ici?
Robot robot = null;
robot = new Robot();
robot.keyPress(KeyEvent.VK_A);
Thread.sleep(5000);
robot.keyRelease(KeyEvent.VK_A);
OriginalL'auteur Ross | 2009-04-24
Vous devez vous connecter pour publier un commentaire.
Fil.sleep() arrête le thread courant (le fil qui est à maintenir la touche enfoncée) à partir de l'exécution.
Si vous le souhaitez, maintenez la touche enfoncée pour un montant donné de temps, peut-être que vous devez l'exécuter dans un Thread parallèle.
Voici une suggestion qui permettrait d'obtenir à travers le Filet.sleep() question (utilise le modèle de commande de sorte que vous pouvez créer d'autres commandes et les swap et sortir à volonté):
OriginalL'auteur edwardsmatt
Il suffit de garder en appuyant sur?
Je pense que la réponse fournie par edward va faire!!
OriginalL'auteur OscarRyz
Il n'y a pas d'événement keyDown en java.lang.Le Robot. J'ai essayé sur mon ordinateur (tester sur une console sous linux au lieu d'avec le bloc-notes) et cela a fonctionné, la production d'une chaîne d'un. C'est peut-être juste un problème avec le bloc-notes?
OriginalL'auteur TwentyMiles