Envoyer un evenement clavier
L'exemple SendKey ouvre l'application Notepad.exe sous Windows et se charge d'écrire 'axel' en envoyant les 4 lettres une à une.
import java.awt.AWTException
import java.awt.Robot
import java.awt.event.KeyEvent
import java.io.IOException
import java.util.logging.Level
import java.util.logging.Logger
/**
* Ouvrir et écrire dans NotePad
* @author fobec.com 2010
*/
public class SendKey {
public SendKey() {
/**
* Lancer NotePad sous Windows
*/
try {
Runtime.getRuntime().exec("notepad");
} catch (IOException ex) {
Logger.getLogger(SendKey.class.getName()).log(Level.SEVERE, null, ex);
}
/**
* Ecrire dans NotePad
*/
try {
Robot robot = new Robot();
/**
* Fixer le delai entre chaque mouvement à 250 ms
*/
robot.setAutoDelay(250);
robot.setAutoWaitForIdle(false);
/**
* Envoyer les touches axel une à une
*/
robot.keyPress(KeyEvent.VK_A);
robot.keyPress(KeyEvent.VK_X);
robot.keyPress(KeyEvent.VK_E);
robot.keyPress(KeyEvent.VK_L);
/**
* Quitter l'application
*/
System.exit(0);
} catch (AWTException ex) {
Logger.getLogger(SendKey.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args) throws AWTException, IOException {
SendKey sendKey = new SendKey();
}
}
Cette méthode peut etre utilisée pour automatiser certaines taches. Par exemple, une application JAVA simule une saisie clavier en envoyant une série de caractère.