Hi,
ich hab mir aus Spaß auf einer LAN einen autoclicker geschrieben, um mir einen unfairen Vorteil zu verschaffen
Allerdings klappt das nicht so ganz, wie ich es mir vorstelle.
Bei dem Spiel handelt es sich um Warcraft 3. Wenn ich das Programm starte und anschließend in Warcraft 3 switche, wird das Programm automatisch beendet. Es wird keine Exception geschmissen. Womit hängt das zusammen? Habe es mal bei anderen Spielen getestet und da funktioniert es.
Hier mal der Code:
Java:
importjava.awt.Robot;importjava.awt.event.InputEvent;publicclassMausKlick{publicstaticvoidmain(String[] args)throwsException{Thread.sleep(5000);Robot a =newRobot();int x =0;while(x <260){
a.mousePress(InputEvent.BUTTON1_MASK);
a.mouseRelease(InputEvent.BUTTON1_MASK);
x++;Thread.sleep(200);}}}
Ja da bin ich mir sicher. Habe Thread.sleep(xxxx) schon so eingestellt, dass es eigentlich 5 min laufen müsste, aber es wird beendet, sobald ich in wc3 wechsle.
Wenn das Programm von Warcraft erkannt und automatisch geschlossen wird, finde ich das ja sehr interessant. Wie kann ein Programm einfach auf meins zugreifen und es beenden? Sowas zu entwickeln erfordert doch einen krassen Hack, oder ist sowas leicht realisierbar? Finde das wirklich spannend.
Gibt es theoretisch nicht Möglichkeiten sowas zu umgehen? Vielleicht ein ActionListener der Eingriffe auf mein Programm überwacht und automatisch beendet. Ist sowas möglich? :rtfm:
PS: zu dem Thema, dass mein Programm nur 57s läuft. Ja in dem konkreten Beispiel ist das so, aber habe Thread.sleep(xxxx) zuvor auch schon sehr viel höher gestellt.
Das mit dem Cheat-detector glaube ich eher weniger. Meine Theorie wäre, dass wc3 extrem agressiv CPU für sich behält und Java nicht zum Zug kommt. Bist du dir ganz sicher, dass das Programm beendet wird? Hast du im taskmgr nachgeschaut?
Log doch einfach mal dein Programm, dann wirst du sehen ob es sich überhaupt beendet, wann es sich beendet etc.
Ich glaube definitiv nicht, dass es daran liegt, dass man keine Resourcen kriegt.
Aber dem log kann man nichts entnehmen. Das einzige was die log-datei enthält ist:
Code:
04.12.2010 18:31:18 MausKlick main
ALLE: START
Das Programm führt beim erstmaligen nutzen in Warcraft ca. 5 Klicks aus und ist dann beendet. Wenn ich das Programm anschließend neu starte, wird nurnoch ein Klick ausgeführt und es automatisch beendet...
Ka, vllt wurde Thread.sleep aus irgend einem Grund nicht ausgeführt und dann lief das ganze so schnell, dass das wc3 nicht nachgekommen ist und nur 5 Mausklicks erhalten hat.