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. )
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();
}
}
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();
}
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?
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;
}
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);
}

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 
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 
Vc é muito negativo kkkkkkkk
kkk já estava quase indo pro c# pra fazer isso,
vou ver se consigo com essa biblioteca
vlw mann
@Override
public void nativeKeyPressed(NativeKeyEvent event) {
boolean keepPressingO = false;
System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(event.getKeyCode()));
if (event.getKeyCode() == NativeKeyEvent.VC_F3) {
System.out.println("Iniciando AutoPotion");
keepPressingO = true;
new Thread() {
@Override
public void run() {
try {
while (keepPressingO) {
}
} catch (NativeHookException e) {
e.printStackTrace();
}
}
}.start();
}
if (event.getKeyCode() == NativeKeyEvent.VC_F4) {
System.out.println("Parando AutoPotion");
keepPressingO = false;
}
}
opa man acabei comentando duas vezes, desculpa…
Eu fiz isso com a biblioteca, mas estou com duvida em como fazer o while
continua sendo com o robot?
Acabei fazendo isso:
while (keepPressingO) {
Robot robot = new Robot();
robot.delay(1000);
robot.keyPress(KeyEvent.VK_O);
}
eu procurei sobre a saida ela fica spammando
INFORMAÇÕES: hook_get_multi_click_time [208]: GetDoubleClickTime: 500.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: hook_get_multi_click_time [208]: GetDoubleClickTime: 500.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: process_mouse_moved [459]: Mouse dragged to 750, 784.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: hook_get_multi_click_time [208]: GetDoubleClickTime: 500.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: process_mouse_moved [459]: Mouse dragged to 751, 784.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: hook_get_multi_click_time [208]: GetDoubleClickTime: 500.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: process_mouse_moved [459]: Mouse dragged to 753, 784.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: hook_get_multi_click_time [208]: GetDoubleClickTime: 500.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: process_mouse_moved [459]: Mouse dragged to 754, 785.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: hook_get_multi_click_time [208]: GetDoubleClickTime: 500.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: process_mouse_moved [459]: Mouse dragged to 756, 785.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: hook_get_multi_click_time [208]: GetDoubleClickTime: 500.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: process_mouse_moved [459]: Mouse dragged to 757, 785.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: hook_get_multi_click_time [208]: GetDoubleClickTime: 500.
jul 19, 2019 10:33:28 PM org.jnativehook.GlobalScreen$NativeHookThread enable
INFORMAÇÕES: process_mouse_moved [459]: Mouse dragged to 759, 785.
registros toda hr nao tou achando nada sobre como parar com isso.
Sim mano, ainda é o robot.
Pra desabilitar o LOG:
Logger loggy = Logger.getLogger(GlobalScreen.class.getPackage().getName());
loggy.setLevel(Level.OFF);
Pra mostrar so a tecla pressionada:
@Override
public void nativeKeyPressed(NativeKeyEvent e) {
char ch = e.getKeyChar();
System.out.println(e.getKeyText(e.getKeyCode()));
// int key = e.getKeyCode();
// System.out.println(ch);
// System.out.println(key);
// String modifiers = e.getModifiersText(e.getModifiers());
// int rawCode = e.getRawCode();
// System.out.println(rawCode);
}
Desvantagens em tempo de utilização que eu percebi até o momento:
A acentuação não funciona
eu tinha cnseguido desatualizar os logs
mas eu encontrei um probleminha kkk
tipo creio que seja pq está apertando as 3 teclas de vez
ex: funciona no chat do mu, no texto do bloco de notas,
mas para usar as potions não
pq eu acho que tem que
apertar a tecla q e qnd apertar a tecla w soltar a tecla q
algo parecido no c#
KEYB_Event(VK_KEY_Q, 0, 0, 0) 'Segura o button 1
KEYB_Event(VK_KEY_Q, 0, 0, 0)
Thread.Sleep(60) ' aqui é o tempo que passa pra outra magia
KEYB_Event(VK_KEY_W, 0, KEYEVENTF_KEYUP, 0) 'Solta o button 1
KEYB_Event(VK_KEY_W, 0, 0, 0) 'Segura o button 2
Thread.Sleep(26) ' aqui é o tempo que passa pra outra magia
KEYB_Event(VK_KEY_E, 0, KEYEVENTF_KEYUP, 0) 'Solta o button 2
KEYB_Event(VK_KEY_E, 0, 0, 0) 'Segura o button 3
Thread.Sleep(60) ' aqui é o tempo que passa pra outra magia
KEYB_Event(VK_KEY_E, 0, KEYEVENTF_KEYUP, 0) 'Solta o button 3
não sei se tem como fazer isso com o robot, desse modo que estou usando funciona apenas uma vez quando aperta o q .
Assim?
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_Q);
robot.keyRelease(KeyEvent.VK_Q);
robot.keyPress(KeyEvent.VK_W);
robot.keyRelease(KeyEvent.VK_W);
Thread.sleep(500);
era algo parecido:
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_Q);
robot.keyPress(KeyEvent.VK_Q);
Thread.sleep(60);
robot.keyRelease(KeyEvent.VK_Q);
robot.keyPress(KeyEvent.VK_W);
Thread.sleep(26);
robot.keyRelease(KeyEvent.VK_W);
robot.keyPress(KeyEvent.VK_E);
Thread.sleep(60);
robot.keyRelease(KeyEvent.VK_E);
vlww manin kkk
Funcionou esse hackzinho aí?
kkkk sss
Relaxa que quase ninguem usa o JavaFx, Swing terá mais facilidade em pesquisar soluções.
opa man kk eu tive um probleminha a thread ta ficando aberto msm depois de fechar a instancia
você poderia me dar um help nisso?
if (event.getKeyCode() == NativeKeyEvent.VC_F) {
keepPressingO = true;
new Thread() {
@Override
public void run() {
try {
while (keepPressingO) {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_Q);
Thread.sleep(26);
robot.keyRelease(KeyEvent.VK_Q);
robot.keyPress(KeyEvent.VK_W);
Thread.sleep(16);
robot.keyRelease(KeyEvent.VK_W);
robot.keyPress(KeyEvent.VK_E);
Thread.sleep(26);
robot.keyRelease(KeyEvent.VK_E);
}
} catch (AWTException e) {
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}
if (event.getKeyCode() == NativeKeyEvent.VC_G) {
keepPressingO = false;
}
teria como eu fazer algo dentro desse if
if (event.getKeyCode() == NativeKeyEvent.VC_G) {
keepPressingO = false;
}
ou fora do while para parar a thread qnd sair do while?
Se eu matar a thread quando apertar para entrar no while dnv vai funcionar?
tou c dúvida kk
E também pensei em fazer isso:
private Thread threadOne;
e dentro do meu if :
if ( == NativeKeyEvent.VC_BACKQUOTE) {event.getKeyCode()
eu chamar a thread com o while
assim eu conseguiria fechar a thread com um windowClosing
mas eu não conseguir montar a estrutura
threadOne.run();