Il Robot lavora con i KeyCode (vedi KeyEvent)
Quindi devi giocartela. Per simulare la digitazione di un carattere al di fuori degli standard, devi simulare quello che potrebbe fare un utente: ALT + (codice ASCII esteso).
Questo esempio scrive una "è":
codice:
// Press ALT
r.keyPress(KeyEvent.VK_ALT);
// 138
r.keyPress(1 + KeyEvent.VK_NUMPAD0);
r.keyRelease(1 + KeyEvent.VK_NUMPAD0);
r.keyPress(3 + KeyEvent.VK_NUMPAD0);
r.keyRelease(3 + KeyEvent.VK_NUMPAD0);
r.keyPress(8 + KeyEvent.VK_NUMPAD0);
r.keyRelease(8 + KeyEvent.VK_NUMPAD0);
// Release ALT
r.keyRelease(KeyEvent.VK_ALT);
Si può generalizzare in una funzioncina:
codice:
public static void premiCarattere(Robot r, char ch) {
r.keyPress(KeyEvent.VK_ALT);
for(int i = 3; i >= 0; i--) {
// otteniamo i quattro caratteri del valore ASCII del carattere passato
int valCifra = ch / (int) (Math.pow(10, i)) % 10;
// Aggiungiamo lo scostamento da VK_NUMPAD0
int tastoNumpad = valCifra + KeyEvent.VK_NUMPAD0;
// Premi e rilascia
r.keyPress(tastoNumpad);
r.keyRelease(tastoNumpad);
}
r.keyRelease(KeyEvent.VK_ALT);
}
Un esempio d'uso:
codice:
Robot r = new Robot();
premiCarattere(r, 'à');
Ciao.