Hi @-All,
für die nächste Zeit habe ich vor, verschiedenne AutoIt Tutorials zu posten.
Kurz zur Erläuterung des Titels:
Am Anfang des Titels kann [AutoIt] (Wie in diesem Fall), oder auch z.B. [C++] usw. stehen. Das zeigt die verwendete Programmiersprache im Tutorial.
Am Ende des Titels können folgende Schwierigkeitsgrade stehen:
Und nun kommen wir zum Tutorial!
Inhalt:
---------------------------------
Was ist ein Bot?
Ein "Bot" (vom eng. "Roboter") ist ein Computerprogramm, das sich wiederholende Aufgaben selbstständig abarbeitet, ohne dabei auf menschliche Benutzer angewiesen zu sein.
---------------------------------
Voraussetzungen
Bei dem Programmieren dieses Bots, bedarf es keiner großen Voraussetzung des könnens usw. Man sollte lediglich die "Befehle und Kontrollstrukturen" kennen, die beim Programmieren verwendet werden:
---------------------------------
Erklärung der Befehle
HotKeySet: Setzt einen HotKey, um eine selbsterstellte Funktion aufzurufen.
Global: Deklariert eine Variable, Konstante oder definiert ein Array.
$Pause, $Pixel: Variable -> Speichert Strings ein Integer (englisch für "ganze Zahl" von lat. "numerus integer")
While...WEnd: Schleife, die auf einem Ausdruck basiert.
Sleep: Pausiert die Skript Ausführung.
Func...EndFunc: Definiert eine Benutzerfunktion, die Null oder mehr Argumente aufnimmt.
If...Then...EndIf : Führt Anweisungen konditionell aus.
ExitLoop: Beendet eine While-, Do- oder For-Schleife.
Exit: Beendet das Skript.
PixelSearch: Durchsucht ein Rechteck von Pixeln nach einer vorgegebenen Farbe.
IsArray: Überprüft, ob eine Variable ein Array ist. -> Begriffserklärung Wikipedia.de
MouseMove: Bewegt den Mauszeiger.
MouseClick: Führt einen Mausklick aus.
Quelle: [Only registered and activated users can see links. Click Here To Register...]
---------------------------------
Bot Programmieren
Zu erst sollte man sich überlegen, für was der Bot zum Schluss gut sein soll:D
Ich habe mich entschieden, einen [Only registered and activated users can see links. Click Here To Register...]-Bot zu programmieren.
Fangen wir an, wie man anhand des Links der zum Spiel führt gesehen hat, muss der Bot den grünen Ball finden und diesem mit der Maus nachfahren und ggf. anklicken...
Aber als erstes, müssen wir den Bot ja irgendwie starten können, nicht?
Dafür legen wir uns drei "HotKeySet" an. Eines zum Start, eines zum pausieren und eines zum beenden des Bots:
[Only registered and activated users can see links. Click Here To Register...]
Danach müssen die Funktionen, die mit dem "HotKeySet" aufgerufen werden, auch noch erstellt werden:
[Only registered and activated users can see links. Click Here To Register...]
So, wenn man das Script nun starten würde, so würde nichts passieren.
Um das zu ändern, muss unter die "HotKeySet"-Region noch eine "While"-Schleife gebaut werden:
[Only registered and activated users can see links. Click Here To Register...]
Wenn in dieser "While"-Schleife kein "Sleep" mit 250 Millisekunden angegeben wäre, würde die CPU durch diesen Bot stark belastet werden, natürlich nur solange der Bot in dieser Schleife gehangen wäre.
Jetzt fangen wir an, die "_Start()" Funktion zu befüllen:
[Only registered and activated users can see links. Click Here To Register...]
Die "While"-Schleife in der Funktion sorgt dafür, dass mit Hilfe von "PixelSearch" immer wieder nach dem Ball gesucht wird, und mit Hilfe von "MouseMove" und "MouseClick" immer wieder dem Ball nachgefahren und dann geklickt wird.
Mit "IsArray" wird geprüft, ob die Variable "$Pixel" ein Array ist, also ob die Variable für "MouseMove" und "MouseClick" verwendet werden kann.
Das große "X" und "Y" bei "PixelSearch" sind die Positionen:
[Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...]
Jetzt fehlt noch die Farbe vom Ball:
[Only registered and activated users can see links. Click Here To Register...]
Nun zur "_Stop" Funktion, diese ist ganz leicht aufgebaut. Wenn die Funktion ausgelöst wird, beendet das Script:
[Only registered and activated users can see links. Click Here To Register...]
Nun zur "_Pause" Funktion. Zunächst muss aber nach der "HotKeySet"-Region noch das hinzugefügt werden:
[Only registered and activated users can see links. Click Here To Register...]
Das "Global" dient dazu die Variable "$Pause = 0" überall im Skript zugänglich zu machen.
Die "While"-Schleife und die "_Start()" Funktion muss noch nach der "_Pause" Funktion angepasst werden. "Warum $Pause = 0 in der Haupt-While-Schleife?" -> Ganz einfach! In der "_Start()" Funktion wird geprüft, ob die Variable "$Pause" auf 1 gesetzt ist. Wenn das der Fall ist, dann gibt die Abfrage den Befehl "ExitLoop", damit wird die laufende "While"-Schleife abgebrochen und demnach auch die "_Start()" Funktion. Nun hängt der Bot wieder in der "Haupt-While-Schleife" und hier muss die Variable "$Pause" ja schließlich wieder auf "0" gesetzt werden.
[Only registered and activated users can see links. Click Here To Register...]
Soooo, fast fertig ;) Aber was fehlt noch? :confused:
Haaajjjaaaaaa :D Natürlich noch die sehr kleine "_Pause" Funktion:
[Only registered and activated users can see links. Click Here To Register...]
Die Variable "$Pause" beim Starten dieser Funktion auf 1 gesetzt, und dieser Wert stoppt wiederum die "_Start()" Funktion!
Nun noch ein Screenshot des ganzen Scriptes:
[Only registered and activated users can see links. Click Here To Register...]
Sooo nun, is das Tutorial fertig ;)
Hoffe ihr habt was daraus gelernt, und gebt dieses Wissen auch an andere weiter :)
für die nächste Zeit habe ich vor, verschiedenne AutoIt Tutorials zu posten.
Kurz zur Erläuterung des Titels:
Am Anfang des Titels kann [AutoIt] (Wie in diesem Fall), oder auch z.B. [C++] usw. stehen. Das zeigt die verwendete Programmiersprache im Tutorial.
Am Ende des Titels können folgende Schwierigkeitsgrade stehen:
- [Anfänger]
- [Fortgeschrittener]
- [Experte]
Und nun kommen wir zum Tutorial!
Inhalt:
- Was ist ein "Bot"?
- Voraussetzungen
- Erklärung der Befehle
- Bot programmieren
---------------------------------
Was ist ein Bot?
Ein "Bot" (vom eng. "Roboter") ist ein Computerprogramm, das sich wiederholende Aufgaben selbstständig abarbeitet, ohne dabei auf menschliche Benutzer angewiesen zu sein.
---------------------------------
Voraussetzungen
Bei dem Programmieren dieses Bots, bedarf es keiner großen Voraussetzung des könnens usw. Man sollte lediglich die "Befehle und Kontrollstrukturen" kennen, die beim Programmieren verwendet werden:
- HotKeySet
- Global
- $Pause, $Pixel (Variablen)
- While...WEnd (Kontrollstrukturen)
- Sleep
- Func
- If...Then (Kontrollstrukturen)
- ExitLoop
- Exit
- PixelSearch
- IsArray
- MouseMove
- MouseClick
---------------------------------
Erklärung der Befehle
HotKeySet: Setzt einen HotKey, um eine selbsterstellte Funktion aufzurufen.
Global: Deklariert eine Variable, Konstante oder definiert ein Array.
$Pause, $Pixel: Variable -> Speichert Strings ein Integer (englisch für "ganze Zahl" von lat. "numerus integer")
While...WEnd: Schleife, die auf einem Ausdruck basiert.
Sleep: Pausiert die Skript Ausführung.
Func...EndFunc: Definiert eine Benutzerfunktion, die Null oder mehr Argumente aufnimmt.
If...Then...EndIf : Führt Anweisungen konditionell aus.
ExitLoop: Beendet eine While-, Do- oder For-Schleife.
Exit: Beendet das Skript.
PixelSearch: Durchsucht ein Rechteck von Pixeln nach einer vorgegebenen Farbe.
IsArray: Überprüft, ob eine Variable ein Array ist. -> Begriffserklärung Wikipedia.de
MouseMove: Bewegt den Mauszeiger.
MouseClick: Führt einen Mausklick aus.
Quelle: [Only registered and activated users can see links. Click Here To Register...]
---------------------------------
Bot Programmieren
Zu erst sollte man sich überlegen, für was der Bot zum Schluss gut sein soll:D
Ich habe mich entschieden, einen [Only registered and activated users can see links. Click Here To Register...]-Bot zu programmieren.
Fangen wir an, wie man anhand des Links der zum Spiel führt gesehen hat, muss der Bot den grünen Ball finden und diesem mit der Maus nachfahren und ggf. anklicken...
Aber als erstes, müssen wir den Bot ja irgendwie starten können, nicht?
Dafür legen wir uns drei "HotKeySet" an. Eines zum Start, eines zum pausieren und eines zum beenden des Bots:
[Only registered and activated users can see links. Click Here To Register...]
Danach müssen die Funktionen, die mit dem "HotKeySet" aufgerufen werden, auch noch erstellt werden:
[Only registered and activated users can see links. Click Here To Register...]
So, wenn man das Script nun starten würde, so würde nichts passieren.
Um das zu ändern, muss unter die "HotKeySet"-Region noch eine "While"-Schleife gebaut werden:
[Only registered and activated users can see links. Click Here To Register...]
Wenn in dieser "While"-Schleife kein "Sleep" mit 250 Millisekunden angegeben wäre, würde die CPU durch diesen Bot stark belastet werden, natürlich nur solange der Bot in dieser Schleife gehangen wäre.
Jetzt fangen wir an, die "_Start()" Funktion zu befüllen:
[Only registered and activated users can see links. Click Here To Register...]
Die "While"-Schleife in der Funktion sorgt dafür, dass mit Hilfe von "PixelSearch" immer wieder nach dem Ball gesucht wird, und mit Hilfe von "MouseMove" und "MouseClick" immer wieder dem Ball nachgefahren und dann geklickt wird.
Mit "IsArray" wird geprüft, ob die Variable "$Pixel" ein Array ist, also ob die Variable für "MouseMove" und "MouseClick" verwendet werden kann.
Das große "X" und "Y" bei "PixelSearch" sind die Positionen:
[Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...]
Jetzt fehlt noch die Farbe vom Ball:
[Only registered and activated users can see links. Click Here To Register...]
ACHTUNG: Die Positionen und die Farbe, sollte nie abgeschrieben werden!
Nun zur "_Stop" Funktion, diese ist ganz leicht aufgebaut. Wenn die Funktion ausgelöst wird, beendet das Script:
[Only registered and activated users can see links. Click Here To Register...]
Nun zur "_Pause" Funktion. Zunächst muss aber nach der "HotKeySet"-Region noch das hinzugefügt werden:
[Only registered and activated users can see links. Click Here To Register...]
Das "Global" dient dazu die Variable "$Pause = 0" überall im Skript zugänglich zu machen.
Die "While"-Schleife und die "_Start()" Funktion muss noch nach der "_Pause" Funktion angepasst werden. "Warum $Pause = 0 in der Haupt-While-Schleife?" -> Ganz einfach! In der "_Start()" Funktion wird geprüft, ob die Variable "$Pause" auf 1 gesetzt ist. Wenn das der Fall ist, dann gibt die Abfrage den Befehl "ExitLoop", damit wird die laufende "While"-Schleife abgebrochen und demnach auch die "_Start()" Funktion. Nun hängt der Bot wieder in der "Haupt-While-Schleife" und hier muss die Variable "$Pause" ja schließlich wieder auf "0" gesetzt werden.
[Only registered and activated users can see links. Click Here To Register...]
Soooo, fast fertig ;) Aber was fehlt noch? :confused:
Haaajjjaaaaaa :D Natürlich noch die sehr kleine "_Pause" Funktion:
[Only registered and activated users can see links. Click Here To Register...]
Die Variable "$Pause" beim Starten dieser Funktion auf 1 gesetzt, und dieser Wert stoppt wiederum die "_Start()" Funktion!
Nun noch ein Screenshot des ganzen Scriptes:
[Only registered and activated users can see links. Click Here To Register...]
Sooo nun, is das Tutorial fertig ;)
Hoffe ihr habt was daraus gelernt, und gebt dieses Wissen auch an andere weiter :)
[Only registered and activated users can see links. Click Here To Register...]
Disclaimer/Haftungausschluss:
Hiermit hafte ich NICHT für eventuell mögliche Schäden am System!
Quellen:
ACHTUNG:
Dieses Tutorial darf in ungeänderter Form nicht verbreitet werden!
Ein Link hierher ist jedoch erwünscht ;)
Disclaimer/Haftungausschluss:
Hiermit hafte ich NICHT für eventuell mögliche Schäden am System!
Quellen:
- [Only registered and activated users can see links. Click Here To Register...]
- [Only registered and activated users can see links. Click Here To Register...] bzw. [Only registered and activated users can see links. Click Here To Register...]
ACHTUNG:
Dieses Tutorial darf in ungeänderter Form nicht verbreitet werden!
Ein Link hierher ist jedoch erwünscht ;)