Desenvolvedor e Analista de Sistemas | IFPA

domingo, 3 de março de 2013

Java - Classe Robot

com 0 Comentário

Tempo é um troço foda… Só falta… nunca tem sobrando…
Depois de muito tempo sem um post, aqui estamos nós.
Hoje a gente vai desvendar a classe Robot, muito útil para testes automáticos, criação de bots e outros.
Em resumo, a classe Robot simula eventos do teclado, mouse e outros.
É tudo muito fácil, vamos ao código:
try {
 Robot robot = new Robot();
 robot.delay(1000);
 robot.keyPress(KeyEvent.VK_J);
 robot.keyPress(KeyEvent.VK_A);
 robot.keyPress(KeyEvent.VK_V);
 robot.keyPress(KeyEvent.VK_A);
 robot.keyPress(KeyEvent.VK_SPACE);
 robot.keyPress(KeyEvent.VK_S);
 robot.keyPress(KeyEvent.VK_I);
 robot.keyPress(KeyEvent.VK_M);
 robot.keyPress(KeyEvent.VK_P);
 robot.keyPress(KeyEvent.VK_L);
 robot.keyPress(KeyEvent.VK_E);
 robot.keyPress(KeyEvent.VK_S);
} catch (Exception ex) {
 System.out.println(ex.getMessage());
}
Para testar esse código basta executar o aplicativo e alternar para um editor de texto qualquer (em menos de 1 segundo).
Tudo o que esse código faz é criar um novo objeto da classe Robot, esperar por um segundo (pra dar tempo de alternar para um editor de texto)  e simular o pressionamento de algumas teclas.
Um efeito bem legal é colocar um delay entre cada uma das teclas. Isso faz parecer que as teclas estão sendo digitas. Segue o código:
try {
 Robot robot = new Robot();
 robot.delay(1000);
 robot.keyPress(KeyEvent.VK_J);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_A);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_V);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_A);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_SPACE);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_S);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_I);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_M);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_P);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_L);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_E);
 robot.delay(500);
 robot.keyPress(KeyEvent.VK_S);
} catch (Exception ex) {
 System.out.println(ex.getMessage());
}
A classe Robot permite a simulação de eventos do mouse também:
try {
    Robot robot = new Robot();
    robot.mouseMove(1100, 10);
    robot.delay(500);
    robot.mousePress(InputEvent.BUTTON1_MASK);
} catch (Exception ex) {
    System.out.println(ex.getMessage());
}
O código acima apenas coloca o mouse na posição 1100,10 da tela e simula um clique do botão esquerdo.
Post curto pra um assunto de fácil entendimento. Espero que ninguém encontre dificuldades quando estiver utilizando essa classe tão legal.

+1

0 comentários :

Postar um comentário

Total de visualizações