Java robot enter funktioniert nicht?
Ich habe ein Programm geschrieben das eine Taste drückt.
robot.keyPress(75);
75 = k
robot.keyPress(13);
13 = Enter
Bei der 75 funktioniert alles aber bei 13 also enter kommt immer eine Fehler meldung hat einer eine ahnung wo dran das liegt?
Hier der Quelltext:
import java.awt.AWTException;
import java.awt.Robot;
import javax.swing.JOptionPane;
public class DiscordXP {
static Robot robot;
public static void main(String[] args) {
try {
robot = new Robot();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
int wiederholung = Integer.parseInt(JOptionPane.showInputDialog("Wiederholung"));
int sekunden = Integer.parseInt(JOptionPane.showInputDialog("Abstand in Sekunden"));
sekunden = sekunden * 1000;
try{
Thread.sleep(10000);
}catch(InterruptedException e){
}
for (int i = 0; i < wiederholung; i++) {
pressAndRelease(75);
pressAndRelease(13);
try{
Thread.sleep(sekunden);
}catch(InterruptedException e){}
}
}
public static void pressAndRelease(int buttons) {
robot.keyPress(buttons);
robot.keyRelease(buttons);
}
}
1 Antwort
Ich kenne nicht alle KeyCodes, aber die Methoden Robot#keyPress und Robot#keyRelease nehmen int-Codes an, die in dem Enum KeyEvent gespeichert sind. Und deshalb verwende jeweils KeyEvent.VK_ENTER bzw. KeyEvent.VK_K als Parameter:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import javax.swing.JOptionPane;
public class DiscordXP {
static Robot robot;
public static void main(String[] args) {
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
return;
}
int wiederholung = Integer.parseInt(JOptionPane.showInputDialog("Wiederholung"));
int sekunden = Integer.parseInt(JOptionPane.showInputDialog("Abstand in Sekunden"));
sekunden = sekunden * 1000;
try{
Thread.sleep(10000);
} catch (InterruptedException e){
}
for (int i = 0; i < wiederholung; i++) {
pressAndRelease(KeyEvent.VK_K);
pressAndRelease(KeyEvent.VK_ENTER);
try{
Thread.sleep(sekunden);
}catch(InterruptedException e){}
}
}
public static void pressAndRelease(int buttons) {
robot.keyPress(buttons);
robot.keyRelease(buttons);
}
}
LG Thorax
Danke hat funktioniert, ich dachte man müsste die KeyCodes nehmen