• Mundo Java
  • Java Simples
    Porque Java não precisa ser dificil…
    • Home
    • Participe
    • Sobre Mim…
    RSS
    domingo, março 14, 2010 Categorized under Mundo Java

    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% [?]

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  

    3 Responses to “Robot ? O Que é isso?”

    1. Luis Tiago disse:
      15/03/2010 às 11:13

      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);

    2. Saab disse:
      15/03/2010 às 11:24

      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.

    3. Lucas disse:
      18/03/2010 às 22:39

      Já tiha ouvido falar..mas nunca pesquisei.. muito interessante mesmo =D
      quando tiver um tempinho vo dar uma brincada

      vlw Saab

    Leave a Reply

    Clique aqui para cancelar a resposta.

    « Criando um cliente para Twitter – Parte 2
    Internacionalização – Um software, vários idiomas! »
    • Busca

    • Tags

      acessar annotations automacao blog bytes cliente computacional converter data date erro exemplo firebird formatacao framework idiomas integrar internacionalizacao ireport java jcalendar jdatechooser linguas manutencao mascara mysql netbeans objeto paleta pratico reflexao reforma representacao robot salvar serializacao simples spring string subreports transformando transformar tutorial twitter twitter4j
    • Posts mais acessados

      1. 100% Criando um cliente para Twitter - Parte 1
      2. 4% Criando um cliente para Twitter – Parte 2
      3. 3% Mudando a cor, fonte, alinhamento, etc... de células de JTable
      4. 3% Adicionando JCalendar e JDateChooser à paleta do Netbeans
      5. 3% Trabalhando com Datas… chega de trauma!
    • Links

      Web Development & Design Blogs TopOfBlogs Central Blogs BlogBlogs blog directory Web Development (Programming) - TOP.ORG Parceria.info - Divulgue seu Site Technology Blogs - Blog Rankings
    • Categories

      • Mundo Java
    • Blogroll

      • Twitter João Lucas
      • Twitter Keep Sistemas
      • Twitter Saab

    Copyright © 2010 Java Simples - Porque Java não precisa ser dificil…. Subscribe to our RSS.
    This web site is proudly powered by WordPress and a free wordpress theme by TopWPThemes.com.
    For the latest trends in web hosting and blogging software come to WebHostingFan.com.