JAVA - Tecla END e DELETE

11 respostas
alansystem

Galera, preciso criar um um sistema que ao clicar em START automaticamente minimiza e a TECLA END e a TECLA DELETE do teclado sejam acionadas automaticamente em sincronia, exemplo

DELETE - END
DELETE - END
DELETE - END
DELETE - END

em um loop até que eu dê um STOP

alguém tem uma dica de como faço isso?

vlw

11 Respostas

ViniGodoy

O que exatamente você quer fazer?

É difícil gerar ações de teclas usando Java, principalmente com a janela minimizada.
Você pode dar uma olhada na classe Robot.

Mas talvez haja uma maneira mais fácil de resolver, se você descrever que problema está tentando solucionar.

alansystem

Tenho um texto que ao copiar para o bloco de notas, fica de uma forma alinhada a esquerda, sendo necessário pressionar END para o cursor ir até o final da linha e depois DELETE para a linha debaixo subir, isso é feito zilhões de vezes! queria algo automático para fazer esse trampinho de escravo rs…

ViniGodoy

Para essas coisas eu uso o Notepad ++.

alansystem

Então, o problema não está na questão de ser o bloco de notas, a questão que estes dados estão sendo retirado de um PDF que tem várias camadas, ou seja, inevitável! o jeito é o DELETE e END msm!

alansystem

Andei fazendo algumas pesquisas, este meu problema não poderia ser solucionado com o KeyPress?

não sei como utilizar, mas vi semelhanças!

ViniGodoy

Tentou usar a classe Robot?

alansystem

Vini, primeiramente Obrigado, o robot faz justamente o que eu preciso,

a única coisa que não estou conseguindo, é fazer o loop funcionar corretamente,

está executando apenas 1 vez, preciso que execute umas 500 pelo menos,

não sei onde estou errando, segue o código:

import java.awt.AWTException;  
import java.awt.Robot;  
import java.awt.event.KeyEvent;  
import java.io.IOException;  

public class Robot05{  
    
  
  public static void main(String[] args)  
                 throws AWTException,IOException{  
  
     int keyInput[] = {
    		 KeyEvent.VK_END, 
    		 KeyEvent.VK_DELETE,
    		 KeyEvent.VK_SPACE,

        };  
  
    
  
    Robot robot = new Robot();  
    
    robot.keyPress(KeyEvent.VK_ALT);  
    robot.keyPress(KeyEvent.VK_TAB);  
    robot.delay(200);  
    robot.keyRelease(KeyEvent.VK_ALT);    
    robot.keyRelease(KeyEvent.VK_TAB);  
    
    
    for (int cnt2 = 0;cnt2 <= 500; cnt2++){  
       
      robot.keyPress(keyInput[cnt2]);     
      robot.delay(100);
      
    }  
  }  
}

vlw :-o

ViniGodoy

A linha 32 está realmente certa? Pq o vetor keyInput não tem 500 elementos.

alansystem
robot.keyPress(keyInput[cnt2]);

Mas o cnt2 é o contador, não era pra fazer uma verificação enquanto for menor ou igual a 500 executar?

como faço pra isso ser executa 500 vezes?

ViniGodoy

for (int cnt2 = 0;cnt2 <= 500; cnt2++){ for (int key : keyInput) { robot.keyPress(key); robot.delay(100); } }

alansystem

Muito bom vlw! deu certo!

Só preciso entender o que está rolando, mas isso é de menos kkk!

Criado 14 de setembro de 2010
Ultima resposta 17 de set. de 2010
Respostas 11
Participantes 2