[RESOLVIDO] Apertar teclas sequencialmente

Opa alguém poderia me ajuda?
Não consegui achar nada sobre

Alguma maneira em um programa apertar teclas em sequencias em um determinado delay
ex:
q w e

( desculpa caso não seja permetido esse tipo de pergunta. )

Cara, não entendi muito bem. Você quer que o programa digite por exemplo a palavra Olá Mundo “sozinho”?

Sim tipo:
Ao abrir a instancia ele ficaria apertando
q soltava q, aperta w solta w, aperta e solta e
em sequencia sem delay .

Entendi, dá sim, vc pode usar a classe Robot.

Não sei se no JavaFX dá pra fazer uma classe Java com o public static void main (provavelmente sim) , mas tenta isso:

public static void main(String[] args) {
    try {
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_O);
        robot.keyPress(KeyEvent.VK_I);
        robot.keyPress(KeyEvent.VK_SPACE);
        robot.keyPress(KeyEvent.VK_L);
        robot.keyPress(KeyEvent.VK_O);
        robot.keyPress(KeyEvent.VK_S);
        robot.keyPress(KeyEvent.VK_T);
        robot.keyPress(KeyEvent.VK_S);
        robot.keyPress(KeyEvent.VK_P);
        robot.keyPress(KeyEvent.VK_I);
        robot.keyPress(KeyEvent.VK_R);
        robot.keyPress(KeyEvent.VK_I);
        robot.keyPress(KeyEvent.VK_T);
    } catch (AWTException e) {
        e.printStackTrace();
    }
}
1 curtida

vlwww mano

poderia me ajudar em mais uma coisa?
Tipo:
caso eu queria ativar isso com uma tecla
para fazer um loop ex:

a pessoa aperta shift ou algum botão do mouse para entrar no while
seria algo parecido com
(robot.keyPress(KeyEvent.VK_O) comparar isso com true?

Tá querendo fazer um aimbot? Kkkkkkk brincadeira, tem sim, nesse caso vc faz assim:

Cria um evento de KeyReleased no TextField, e coloca esse código abaixo, eu uso o JavaSwing, pode ser que a maneira de escrever o evento mude, aí vc da uma pesquisada!

Toda vez que você apertar a tecla ENTER, o robot vai escrever na tela.

jTextField1.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyReleased(java.awt.event.KeyEvent evt) {
        jTextField1KeyReleased(evt);
    }
});

private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {            
        if (evt.getKeyCode() == evt.VK_ENTER) {
            new Thread() {
                @Override
                public void run() {
                    try {
                        Robot robot = new Robot();
                        robot.keyPress(KeyEvent.VK_O);
                        robot.keyPress(KeyEvent.VK_I);
                        robot.keyPress(KeyEvent.VK_SPACE);
                        robot.keyPress(KeyEvent.VK_L);
                        robot.keyPress(KeyEvent.VK_O);
                        robot.keyPress(KeyEvent.VK_S);
                        robot.keyPress(KeyEvent.VK_T);
                        robot.keyPress(KeyEvent.VK_S);
                        robot.keyPress(KeyEvent.VK_P);
                        robot.keyPress(KeyEvent.VK_I);
                        robot.keyPress(KeyEvent.VK_R);
                        robot.keyPress(KeyEvent.VK_I);
                        robot.keyPress(KeyEvent.VK_T);
                    } catch (AWTException e) {
                        e.printStackTrace();
                    }
                }
            }.start();
        }
1 curtida

kkk não é para fazer um auto potion para Mu kk

eu tava fzd algo desse tipo;

	@Override
    public void keyPressed(KeyEvent arg0) 
    {
		while() {
			
		}

    }
 
    @Override
    public void keyReleased(KeyEvent arg0) 
    {
         
    }
 
    @Override
    public void keyTyped(KeyEvent arg0) 
    {

eu tava querendo por em um cmd mesmo ex ao dar rum apertar f1 já faria isso
ai eu fiquei um pouco confuso em como mudar esse evt

tipo eu iria pegar a key enter (exemplo) ai já ativaria eu botaria um while caso ele apertasse f2 o programa sairia do while

Vc vai fazer em Fx ou Swing?

1 curtida

Vou fazer no swing mesmo (acabei desistindo do fx)

Ok.

Você sabe o que é um método sobrecarregado? É quando você coloca atributos nele, ex:

private void imprimir_nome(){
    //Esse não é sobrecarregado
    String nome = "Abner";
    System.out.println(nome);
}

private void imprimir_nome(String nome){
    //Esse é sobrecarregado
    System.out.println(nome);
}

Você pode colocar qualquer coisa ao invés da variável nome, tipo: String name, String alguma_coisa_qualquer

OK, o mesmo acontece com o evt. Eu uso o Netbeans, então não sei como funciona bem em outras IDE’s.

Se você clicar como botão direito em cima do TextField vai aparecer algumas opções, você escolhe: Events, Key, KeyReleased

    int i = 0;

    if (evt.getKeyCode() == KeyEvent.VK_F1) {
        System.out.println("Iniciando AutoPotion");
        i = 1;
        new Thread() {
            @Override
            public void run() {
                try {
                    while (i > 0) {
                        Robot robot = new Robot();
                        robot.keyPress(KeyEvent.VK_O);
                    }
                } catch (AWTException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

    if (evt.getKeyCode() == KeyEvent.VK_F2) {
        System.out.println("Parando AutoPotion");
        i = 0;
    }
1 curtida

opa man eu acabei fzd assim:

addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent event) {
				int i = 0;
			    if (event.getKeyCode() == KeyEvent.VK_F1) {
			        System.out.println("Iniciando AutoPotion");
			        i = 1;
			        new Thread() {
			            @Override
			            public void run() {
			                try {
			                    while (i > 0) {
			                        Robot robot = new Robot();
			                        robot.keyPress(KeyEvent.VK_O);
			                    }
			                } catch (AWTException e) {
			                    e.printStackTrace();
			                }
			            }
			        }.start();
			    }

			    if (event.getKeyCode() == KeyEvent.VK_F2) {
			        System.out.println("Parando AutoPotion");
			        i = 0;
			    }
			}
		});	

mas eu estou com um error na variável i no while:

while (i > 0) {
			                        Robot robot = new Robot();
			                        robot.keyPress(KeyEvent.VK_O);
			                    }

i

Define a variável como global

int i = 0;

addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent event) {	
			    if (event.getKeyCode() == KeyEvent.VK_F1) {
			        System.out.println("Iniciando AutoPotion");
			        i = 1;
			        new Thread() {
			            @Override
			            public void run() {
			                try {
			                    while (i > 0) {
			                        Robot robot = new Robot();
			                        robot.keyPress(KeyEvent.VK_O);
			                    }
			                } catch (AWTException e) {
			                    e.printStackTrace();
			                }
			            }
			        }.start();
			    }

			    if (event.getKeyCode() == KeyEvent.VK_F2) {
			        System.out.println("Parando AutoPotion");
			        i = 0;
			    }
			}
		});

fiz isso os error saiu do while
e foi pro
i=0 e i = 1.

Qual erro?

O mesmo da print.

Não tem como mano, vc declarou ela como global? Eu testei aqui e não tem como dar esse erro

boolean xd = false;
public ViewPotion() {
    addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent event) {

            if (event.getKeyCode() == KeyEvent.VK_F4) {
                System.out.println("Iniciando AutoPotion");
                xd = true;

                new Thread() {
                    @Override
                    public void run() {
                        try {
                            while (keepPressingO) {
                                Robot robot = new Robot();
                                robot.keyPress(KeyEvent.VK_O);
                            }
                        } catch (AWTException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();

            }

            if (event.getKeyCode() == KeyEvent.VK_F2) {
                System.out.println("Parando AutoPotion");
                xd = false;
            }
        }
    }); 
}

resolvi, mas não foi mt bem o que queria
pq precisa está na tela e apertar f4 para ativar
eu precisaria que ao apertar f4 ativasse mesmo sem estar na tela
creio que com o swing n vou conseguir isso :frowning:

eu consegui tava vacilando
resolvi, mas não foi mt bem o que queria
pq precisa está na tela e apertar f4 para ativar
eu precisaria que ao apertar f4 ativasse mesmo sem estar na tela
creio que com o swing n vou conseguir isso :frowning:

Vc é muito negativo kkkkkkkk

kkk já estava quase indo pro c# pra fazer isso,
vou ver se consigo com essa biblioteca
vlw mann