Robot beenden oder zerstören

xari

Mitglied
Hallo,

ich habe einen global KeyListener und auf Tastendruck starten mein Robot. Ich schaffe es nur nicht das dieser jetzt, nachdem ich die Taste los gelassen haben, sich beendet. Hilfe ;(

Java:
public void keyRobot() throws AWTException, InterruptedException {
		Robot r = new Robot();
		
		while (keyPressed
				&& (click1 || click2 || click3 || click4 || clickml || clickmr)) {
			if (click1) {
				double rnd = (double) ((Math.random()) * 105 + 80);
				r.keyPress(KeyEvent.VK_1);
				r.keyRelease(KeyEvent.VK_1);
				Thread.sleep((long) rnd);
			}
			if (click2) {
				double rnd = (double) ((Math.random()) * 105 + 80);
				r.keyPress(KeyEvent.VK_2);
				r.keyRelease(KeyEvent.VK_2);
				Thread.sleep((long) rnd);
			}
			if (click3) {
				double rnd = (double) ((Math.random()) * 105 + 80);
				r.keyPress(KeyEvent.VK_3);
				r.keyRelease(KeyEvent.VK_3);
				Thread.sleep((long) rnd);
			}
			if (click4) {
				double rnd = (double) ((Math.random()) * 105 + 80);
				r.keyPress(KeyEvent.VK_4);
				r.keyRelease(KeyEvent.VK_4);
				Thread.sleep((long) rnd);
			}
			if (clickml) {
				double rnd = (double) ((Math.random()) * 105 + 80);
				r.mousePress(InputEvent.BUTTON1_MASK);
				r.mouseRelease(InputEvent.BUTTON1_MASK);
				Thread.sleep((long) rnd);
			}
			if (clickmr) {
				double rnd = (double) ((Math.random()) * 105 + 80);
				r.mousePress(InputEvent.BUTTON2_MASK);
				r.mouseRelease(InputEvent.BUTTON2_MASK);
				Thread.sleep((long) rnd);
			}
		}
	}

Java:
	public void nativeKeyPressed(NativeKeyEvent e) {
		keyPressed = true;
		try {
			keyRobot();
		} catch (AWTException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	}
 

xari

Mitglied
jup, funktioniert. Danke ;)

Hab aber ein weiteres Problem.
Wenn ich jetzt die Leertaste drücke und gedrückt halte, während dessen dann eine andere Taste drücke und loslasse und dann die Leertaste loslasse kommt das bei mir im KeyReleased nicht an.

Also Leertaste gedrückt --> andere Taste drücken --> Leertaste loslassen.
Das ich die Leertaste loslasse kommt nicht an. Wieso ?
 

fafrey

Mitglied
jup, funktioniert. Danke ;)
Wenn ich jetzt die Leertaste drücke und gedrückt halte, während dessen dann eine andere Taste drücke und loslasse und dann die Leertaste loslasse kommt das bei mir im KeyReleased nicht an.

Weniger Klavier auf der Tastatur spielen und dafür mehr programmieren :D

Ändere es doch einfach ab das du nur 2 Tasten drücken musst anstatt
eine zu drücken(1), draufzubleiben, währenddessen du eine andere Taste(2) drücken musst
und dann wieder eine Taste loslässt(1). Ist doch auch nicht so Benutzerfreundlich,
auch wenn es nur für den eigenen Gebrauch programmiert ist (nehme ich an).
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor

xari

Mitglied
jup, funktioniert. Danke ;)

Hab aber ein weiteres Problem.
Wenn ich jetzt die Leertaste drücke und gedrückt halte, während dessen dann eine andere Taste drücke und loslasse und dann die Leertaste loslasse kommt das bei mir im KeyReleased nicht an.

Also Leertaste gedrückt --> andere Taste drücken --> Leertaste loslassen.
Das ich die Leertaste loslasse kommt nicht an. Wieso ?

Ahh, das war ein bisschen ungünstig formuliert :oops:
Das Problem ist, wenn der Robot in der while schleife die Tasteneingaben macht, erkennt das Programm keine eingaben mehr die ich manuell mache, egal ob ich auf die Tastatur klicke oder auf die Maus.

Java:
public void nativeKeyReleased(NativeKeyEvent e)

Die Methode reagiert nur noch auf die Tastendrücke vom Robot.
 
Zuletzt bearbeitet:

xari

Mitglied
Bin ein bisschen weiter :)
Das Programm erkennt die manuellen Eingaben. Nur kommen die stark verzögert an, da es noch die ganzen eingaben vom Robot abarbeitet.
 

xari

Mitglied
Habs bisschen umgeschrieben und es funktioniert jetzt.
Allerdings soll jedes mal wenn der Robot eine Taste drückt, danach eine kleine Pause sein, bis er die nächste Taste drückt. Das wär super.
Thread.sleep(); ist dafür nicht geeignet. Schon probiert :)

Java:
public void nativeKeyPressed(NativeKeyEvent e) {
		if ((e.getKeyCode() == NativeKeyEvent.VK_SPACE && spaceKey)) {
			try {
				keyRobot();
			} catch (AWTException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (InterruptedException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
	}

public void keyRobot() throws AWTException, InterruptedException {
		Robot r = new Robot();

		if (click1) {
			r.keyPress(KeyEvent.VK_1);
			r.keyRelease(KeyEvent.VK_1);
		}
		if (click2) {
			r.keyPress(KeyEvent.VK_2);
			r.keyRelease(KeyEvent.VK_2);
		}
		if (click3) {
			r.keyPress(KeyEvent.VK_3);
			 r.keyRelease(KeyEvent.VK_3);
		}
		if (click4) {
			r.keyPress(KeyEvent.VK_4);
			r.keyRelease(KeyEvent.VK_4);
		}
		if (clickml) {
			r.mousePress(InputEvent.BUTTON1_MASK);
			r.mouseRelease(InputEvent.BUTTON1_MASK);
		}
		if (clickmr) {
			r.mousePress(InputEvent.BUTTON2_MASK);
			r.mouseRelease(InputEvent.BUTTON2_MASK);
		}
	}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
M Moorhuhn Pixel-Aimbot mit Robot Library Java Basics - Anfänger-Themen 12
B Robot auf virtuellem Desktop laufen lassen? Java Basics - Anfänger-Themen 4
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
T Tastatur mit robot ß ^ und @ simulieren Java Basics - Anfänger-Themen 4
S Java robot Tastenschläge vereinfachen Java Basics - Anfänger-Themen 4
S Java Robot Tasteneingaben vereinfachen Java Basics - Anfänger-Themen 1
B Threads Robot.mouseMove ruckelt Java Basics - Anfänger-Themen 1
V Robot kann Button nicht drücken warum? Java Basics - Anfänger-Themen 6
K Wie funktioniert die Klasse Robot Java Basics - Anfänger-Themen 19
J Robot Java Basics - Anfänger-Themen 4
Viktormk robot class Java Basics - Anfänger-Themen 11
Viktormk java robot class Java Basics - Anfänger-Themen 5
Viktormk java robot Java Basics - Anfänger-Themen 28
D Loop Funktion für Robot Klasse Java Basics - Anfänger-Themen 5
P Screenshot eines Fullscreen-Fensters mit Robot Java Basics - Anfänger-Themen 3
TheKing Robot in .App (mac) Java Basics - Anfänger-Themen 6
TheKing Klasse Robot-KeyPress Java Basics - Anfänger-Themen 2
X Robot geht nicht mehr (Ubuntu 9.10) Java Basics - Anfänger-Themen 2
B Robot.keyPress() Java Basics - Anfänger-Themen 2
F Variabler - Robot - Tastatureingaben Java Basics - Anfänger-Themen 5
Screen robot key frage Java Basics - Anfänger-Themen 16
F Robot Java Basics - Anfänger-Themen 10
D Frage zur Klasse Robot Java Basics - Anfänger-Themen 2
G java robot Java Basics - Anfänger-Themen 6
N Robot/GetpixelColor Problem Java Basics - Anfänger-Themen 2
G Array schreiben durch Robot Java Basics - Anfänger-Themen 8
C java.awt.Robot; Java Basics - Anfänger-Themen 16
W Windows clipboard zugriff / Robot tricks ? Java Basics - Anfänger-Themen 2
S Robot ohne Focus. Java Basics - Anfänger-Themen 6
T Robot-Problem mit Sonderzeichen Java Basics - Anfänger-Themen 2
M Verwendung von Robot... wie? Java Basics - Anfänger-Themen 6
B java.awt.Robot Problem. Java Basics - Anfänger-Themen 11
P Wie kann diese Schleife beenden Java Basics - Anfänger-Themen 1
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
K Bufread.readLine())!= null wie beenden? Java Basics - Anfänger-Themen 4
B Endlosschleife Thread sauber beenden Java Basics - Anfänger-Themen 19
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
D Konsoleneingabe mit Abbruchbedingung beenden Java Basics - Anfänger-Themen 11
R Error, wenn mehrere Clients gleichzeitig die Verbindung beenden Java Basics - Anfänger-Themen 16
ralli85 Programm nach einer gewissen Anzahl von Eingaben beenden Java Basics - Anfänger-Themen 15
W Geschachtelte for-schleife beenden Java Basics - Anfänger-Themen 2
F Thread der auf eine Queue wartet, sicher beenden Java Basics - Anfänger-Themen 4
KaffeeFan Timer beenden Java Basics - Anfänger-Themen 12
E Threads Doppelte Threads beenden Java Basics - Anfänger-Themen 4
T Input/Output Programm beenden durch Eingabe Java Basics - Anfänger-Themen 1
O Per return Run Methode beenden Java Basics - Anfänger-Themen 3
R for-Schleife bei erfüllter Bedingung beenden Java Basics - Anfänger-Themen 7
B Timer beenden? Java Basics - Anfänger-Themen 0
T For-Schleife mit Esc Beenden Java Basics - Anfänger-Themen 5
T Bei Buttonklick Aktion starten, nach erneutem Klick beenden Java Basics - Anfänger-Themen 4
J beenden durch choice Java Basics - Anfänger-Themen 11
L Methode per Knopfdruck beenden Java Basics - Anfänger-Themen 3
TheSorm java Schleife beenden per Tastendruck Java Basics - Anfänger-Themen 10
Bluedaishi Klassen Thread über if Anweisung starten und von anderer Klassen über Button Beenden Java Basics - Anfänger-Themen 34
FreeFun Java Anwendung beenden Java Basics - Anfänger-Themen 7
M Programm beenden über menueItem "Beenden"! Java Basics - Anfänger-Themen 5
D Applet beenden Java Basics - Anfänger-Themen 7
A mit break if beenden Java Basics - Anfänger-Themen 6
A Programm beenden Java Basics - Anfänger-Themen 6
P Threads Thread und Zugriff auf externe Methode beenden Java Basics - Anfänger-Themen 4
E Intanz einer Klasse beenden Java Basics - Anfänger-Themen 6
S Komplette Rekursion beenden? Java Basics - Anfänger-Themen 2
E Prozesse überwachen und gezielt beenden Java Basics - Anfänger-Themen 3
L Prozess beenden Java Basics - Anfänger-Themen 3
T Opaque kennt er nicht/ programm beenden?? Java Basics - Anfänger-Themen 9
R Programm nach ablauf eines Timers beenden Java Basics - Anfänger-Themen 10
K Zeit ablaufen lassen und nach Ablauf beenden Java Basics - Anfänger-Themen 5
c_sidi90 javax.exe beenden nach Programmende Java Basics - Anfänger-Themen 10
D Programm durch eingabe von einer "0" beenden... Java Basics - Anfänger-Themen 21
Steve5000 Externe Batch-Datei starten und anwendung beenden?! Java Basics - Anfänger-Themen 4
B Java-Programm-Dienst sauber beenden Java Basics - Anfänger-Themen 6
M Probleme beim Beenden eines Threads Java Basics - Anfänger-Themen 25
J Schleife durch nichtseingeben/Enter beenden. Java Basics - Anfänger-Themen 5
C Exceptions beim Beenden Java Basics - Anfänger-Themen 2
J Methode beenden Java Basics - Anfänger-Themen 6
T switchcase innerhalb Schleife: von case-Fall aus Schleife beenden Java Basics - Anfänger-Themen 3
T Programm beenden (Exit function?) Java Basics - Anfänger-Themen 6
J Programm beenden via Benutzereingabe Java Basics - Anfänger-Themen 8
U Threads - Beenden/ Wieder starten Java Basics - Anfänger-Themen 10
S Eingabe über Scanner einlesen und automatisch beenden Java Basics - Anfänger-Themen 11
D Exceptions werfen + beenden Java Basics - Anfänger-Themen 12
I Gui läßt sich nicht beenden Java Basics - Anfänger-Themen 6
J Thread beenden? Java Basics - Anfänger-Themen 2
Piwi Timer bei Programmende beenden Java Basics - Anfänger-Themen 25
pun Thread "extern" beenden Java Basics - Anfänger-Themen 4
P Ein Programm vorzeitig beenden und wieder an den Anfang springen. Java Basics - Anfänger-Themen 7
Y jprogressbar beenden? Java Basics - Anfänger-Themen 4
F Anderes Programm beenden Java Basics - Anfänger-Themen 3
S Klasse beenden Java Basics - Anfänger-Themen 12
G Klasse mit Timer nicht beenden Java Basics - Anfänger-Themen 6
I If-schleife mittendrin beenden Java Basics - Anfänger-Themen 9
TiME-SPLiNTER Programm nur durch Benutzer beenden Java Basics - Anfänger-Themen 15
K Thread nach X-Sekunden beenden Java Basics - Anfänger-Themen 6
J Threads richtig beenden Java Basics - Anfänger-Themen 6
T zeitgesteuert Programm beenden Java Basics - Anfänger-Themen 6
M ActionListener applet beenden Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben