Olá a todos!
Pretendo fazer um macro de texto que irá fazer o seguinte: com o JFrame irei criar uma barra de texto para que o usuário digite um texto qualquer e que possa conter caracteres especiais, como por exemplo: “NØVØ”. E com a ajuda do keylogger irei criar uma tecla de atalho para que sempre que o usuário pressionar essa tecla, será escrito a palavra "NØVØ’ (no nosso exemplo) a onde ele tiver.
Então por exemplo, se ele tiver com o bloco de notas aberto e pressionar a tecla de atalho, será escrio “NØVØ” no bloco de notas. Eu consegui fazer isso usando texto letras normais (A, B, C, D, … ) usando o seguinte algoritmo:
class Digite{
private String txt;
private Robot robot;
public void digitar(String txt){
this.txt = txt;
txt = txt.toUpperCase();
try {
robot = new Robot();
} catch (AWTException ex) {
Logger.getLogger(Digite.class.getName()).log(Level.SEVERE, null, ex);
}
if(txt != null){
for(int i = 0; i < txt.length(); i++){
for(int b = 48; b <= 90; b++){
if(txt.charAt(i) == ’ '){
robot.keyPress(32);
robot.keyRelease(32);
break;
}
if(b == 58){
b = 65;
}
if(KeyEvent.getKeyText(b).charAt(0) == txt.charAt(i)){
System.out.println(b+ ": " + KeyEvent.getKeyText(b) + " i : "+i + " txt.charAt(i) "+txt.charAt(i) );
robot.keyPress(b);
robot.keyRelease(b);
}
}
}
}
}
}
Ou seja, pelo método digitar ele irá receber uma string (texto do usuário), irá verificar se o texto digitado está compreendido entre os caracteres de código 48 a 90 (tabela ASCII onde 48 é 0 e 90 é Z), e depois com a ajuda do Robot keypress irá escrever o que foi lido.
Mas para caracteres especiais eu não faço ideia de como fazer isso para caracteres especiais… Alguem teria uma sugestão?