Robot ? O Que é isso?
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 ninguem encontre dificuldades quando estiver utilizando essa classe tão legal.
[]s,
Saab.
PS: Esse post foi uma dica do Dang do Programei.org. Valew fera!
Popularity: 3% [?]






invez de tantos:
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);
vc pode usar isto: robot.setAutoDelay(500);
Valew Tiago,
Nem tinha me tocado desse método, fiz o post meio correndo ontem a noite e nem explorei muito as funcionalidades da classe.
Fica ai a dica do Tiago pessoal (muito útil por sinal)!
Obrigado de novo!
[],
Saab.
Já tiha ouvido falar..mas nunca pesquisei.. muito interessante mesmo =D
quando tiver um tempinho vo dar uma brincada
vlw Saab