Project by FirePanther
1c6bdde2e1dc69a5ffb9533dea92be7f

Nicht angemeldet.

Das Tutorial wurde noch nicht zuvor von Ihnen gelesen.

Tutorials

Hier finden Sie Tutorials von und für Euch

Tutorialinformationen
3373 Zugriffe / 0 Kommentare

Allgemeines Tutorial für Neueinsteiger

Kurzbeschreibung
In diesem Tutorial werde ich euch anhand vieler Abschnitte AutoIt erklären, dementsprechend will ich mit diesem Tutorial bezwecken, dass viele Fragen beantwortet werden!
Hallo und willkommen in meinem Tutorial für unsere Anfänger in AutoIt.
In diesem Tutorial werde ich euch verschiedene Bereiche erklären.

Die Einleitung in AutoIt:

Zitat

AutoIt ist eine Software zur Erstellung von Makros, mit denen Abläufe unter Microsoft Windows automatisiert werden können. AutoIt ist Freeware und läuft unter NT, 2000, XP und Vista. Das Programm stellt dem Nutzer eine BASIC-ähnliche Scriptsprache zur Verfügung. Außerdem enthält es einen Interpreter und einen Compiler, mit dem ausführbare Dateien (exe-Dateien) erstellt werden können; damit können AutoIt-Scripte auch auf Computern ausgeführt werden, auf denen AutoIt nicht installiert ist.

Zitat von Wikipedia zu Autoit, eine kurze Erklärung.

Solltet ihr noch kein Autoit haben, ladet es euch bei Autoitscript.com runter, oder geht auf diesem Link um direkt auf die Download-Page zu gelangen, dort findet ihr zahlreiche Downloads für Autoit, Tools & den Scite-Editor.

Die Full-Installation (volle Installation von Autoit, inklusive dem Scite-Editor) installiert Autoit und alles was man für das programmieren braucht. Ich rate euch anschließend Scite nochmal alleine zu downloaden, weil dieser Download auch noch Tools beinhaltet (u.a. Koda oder Tidy Autoit Source (säubert das Script für eine bessere Lesbarkeit)).

Habt ihr die Installation von Autoit und Scite abgeschlossen, könnt ihr letztendlich mit dem programmieren in Autoit beginnen!

Wie erstelle ich ein Autoit Script?
Klickt rechts auf eurem Desktop oder in einem Ordner und bewegt euren Mauszeiger über "Neu", dann wählt ihr Autoit-v3-Script aus und es erscheint eine .au3 Datei die ihr anschließend mit einem Rechtsklick und Edit Script öffnen könnt.

Was ist wenn ich mal nicht weiter weiß?
Zuerst die Hilfe benutzen, solltet ihr euch im Scite-Editor befinden drückt einfach die F1-Taste und die Hilfe erscheint, jetzt nur noch im Index den Befehl eingeben, wo ihr euch nicht sicher seit wie ihr ihn benutzt und die Erklärung erscheint dann!
Für die, die nicht grade die Meister in Englisch sind, empfehle ich euch die deutsche Hilfe zu downloaden, die findet ihr auf Autoit.de!

Die erste MsgBox:

Die MsgBox ist wie man schon denken kann, eine Nachrichen Box [Für Meldungen und Hinweise] heißen.
Hier zu gibt es den Befehl:

AutoIt-Quelltext

MsgBox ( flag, "title", "text" [, timeout [, hwnd]] )


Flag:
Die Flag ist der ?Style" der Box, ob er als Fehlermeldung oder als Info Box erscheinen soll.

Title:
Der Titel der Box.

Text:
Der Inhalt der Box.

[timeout]:
Wie lange die Box dar sein soll, Zeit in Sekunden.


[hwnd]:
Das Fenster Handle welches als Parent für diesen Dialog verwendet werden soll.

Hier ist ein einfacher Script:

AutoIt-Quelltext

MsgBox(64, "Test", "Diese Box wird sich in 10 Sekunden selbst schließen", 10)


Die Box wird als Info Box dargestellt [Flag = 64], der Titel ist "Test", der Text ist "Diese Box wird sich in 10 Sekunden selbst schließen" und 10 bedeutet das die Box sich in 10 Sekunden schließt.

Das wichtigste an der MsgBox wurde erklärt.

Hotkeys einfügen:


Hotkeys sind im Grunde bei den Scripts sehr beliebt, damit man diese auch beenden, paussieren oder Befehle ausführen kann.

Der Befehl für hier lautet:

AutoIt-Quelltext

HotKeySet ("key" [,"function"] )


Key:
Die Taste, die gedrückt werden muss um die Funktion / den Befehl auszuführen.

[function]:
Die Funktion, der sagt was der Befehl machen soll.

Hier ist ein einfacher Script:

AutoIt-Quelltext



HotKeySet fertig.

Die Variabeln und InputBoxen:

Variabeln sind Wörter die für Befehle eingesetzt werden.
Variabeln stellt man fest an das $ [Bekanntlich das Dollar Zeichen].

Hier ist mal eine Variabel:

AutoIt-Quelltext

$Variabel


So, um diese Variabel jetzt ein Befehl zuzuordnen machen wir ein = [Gleichzeichen]:

AutoIt-Quelltext

$Variabel =


Die Variabel soll als InputBox erscheinen:

AutoIt-Quelltext

$Variabel = InputBox ( "title", "Prompt" [, "Default" [, "password char" [, width, height [, left, top [, timeOut [, hwnd]]]]]] )


Title:
Titel der EingabeBox.

Prompt:
Anweisung der EingabeBox.

Default:
Der in der Eingabe-Box vorgegebene Wert.

Password Char:
Buchstabe oder Zahl die, was in der Box geschrieben worden ist ersetzt, in der Wirklichkeit entspricht das was ihr geschrieben habt der Realität.

[width, hight, left, top]:
Wie Groß die Box ist.

[timeout]:
Wie lange die InputBox dar sein soll.

[hwnd]:
Das Fenster Handle welches als Parent für diesen Dialog verwendet werden soll.

Hier mal ein Script:

AutoIt-Quelltext

$Variabel = InputBox("Befragung", "Schreibe hier dein Vornamen hinein:")
MsgBox(0, "Vorname", "Dein Vorname ist " & $Variabel)


Ferig :D

PixelSearch mit Au3 Window Info Erklärung:

Wir werden jetzt mal ein bisschen PixelSearch betreiben und gleichzeitig mit dem MouseMove-Befehl herumspielen!

PixelSearch ist eine Funktion um eine Stelle auf eurem Desktop zu suchen und wenn eine Variabel damit definiert wird dann kann man auch damit MouseMove und MouseClick betreiben.

Hier der Befehl:

AutoIt-Quelltext

PixelSearch ( left, top, right, bottom, colour [, shade-variation [, step [, hwnd]]] )


left, top, right, bottom:
Die 4 Begrenzungen.
Au3 Erklärung:
Die finden wir einfach raus wenn wir in das Spiel "CurveBall" das Spielfeld ausmessen, man freezt die Info und geht mit dem Finder Tool an die linke obere Ecke im Spielfeld und wenn man jetzt in den Tab "Mouse" wechselt kommen auch bei der Position auch schon left, top raus.
Das gleiche noch mal rechts unten des Spielfelds, wieder das Finder Tool nehmen und messen, dann kopiert man bei Position die 2 Werte und man hat right, bottom raus.

colour:
Heisst ja bekanntlich Farbe, der Farbcode der im Pixel gesucht werden soll.
Au3 Erklärung:
Man geht mit dem gefrozzten Au3 Window info mit dem Finder Tool über dem Ball im Spiel CurveBall und man bekommt über den Tab "Mouse" auch schon die Farbe für den Pixel heraus, den kopiert man und man hat die Farbe.

[shade-variation]:
Eine Zahl zwischen 0 und 255, die die Anzahl erlaubter Schattierungsschwankungen der Rot-, Grün- und Blaukomponenten festlegt. Standard ist 0 (exakte Übereinstimmung).

[step]:
Anstatt jedes Pixel in die Prüfsumme einzubeziehen, kann man einen Wert größer als 1 verwenden um Pixel zu überspringen (schneller). z.B. wird ein Wert von 2 nur jedes zweite Pixel prüfen. Standard ist 1.

[hwnd]:
Handle des zu durchsuchenden Fensters.

Bei mir würde so der Code aussehn:

AutoIt-Quelltext

$PixelSearch = PixelSearch(117, 312, 584, 623, 0xC4FFB6)


Um den ?Bot" [Ja, man kann jetzt daraus ein CurveBall Bot machen] für immer laufen zu lassen machen wir eine While True - WEnd Schleife:

AutoIt-Quelltext

While True
$PixelSearch = PixelSearch(117, 312, 584, 623, 0xC4FFB6)
WEnd


Jetzt wollen wir ein MouseMove machen, sodass er die Kugel auch immer verfolgt, aber bevor wir das machen müssen wir die Variabel in ein Array umwandeln:

AutoIt-Quelltext

While True
$PixelSearch = PixelSearch(117, 312, 584, 623, 0xC4FFB6)
If IsArray($PixelSearch) = True Then
WEnd


Jetzt können wir auch den MouseMove Befehl einfügen:

AutoIt-Quelltext



So, jetzt verfolgt die Maus den Ball mit maximaler Geschwindigkeit, ihr könnt natürlich auch HotKeys einfügen, guckt aber dafür unter die Rubrik: Hotkeys einfügen

Fertig wieder mal :D

Die .Ini Funktionen:

.Ini ist eine Konfigurationsdatei, sie werden ausgelesen oder es werden wichtige Informationen reingeschrieben:

Das sind die 2 Befehle bei AutoIt für .Ini:

AutoIt-Quelltext

IniWrite ( "filename", "section", "key", "value" )
IniRead ( "filename", "section", "key", "default" )


Um eine .Ini zuerstellen machen wir einfach:

AutoIt-Quelltext

IniWrite("Meine erste Ini.ini", "Sektion", "Schlüssel", "Wert")


Section:
Wie eine Kategorie in einem Buch.

Key:
Der Name des Schlüssels in der .ini-Datei.

Value:
Der zu schreibende/ändernde Wert.

So, der Befehl macht eine .Ini in dem Verzeichnis wo euer Script gestarten worden ist mit den Daten, die könnt ihr natürlich auch umschreiben.
Natürlich könnt ihr auch eine InputBox machen und dies eine Variabel zuordnen und die in dem IniWrite Befehl unter der gewünschten Stelle einfügen.

Jetzt kommt der IniRead Befehl:
Dieser liest das was in der .Ini drin ist.
Wenn wir zum Beispiel unsern Script auslesen wollen und ihn als MsgBox dann zeigen wollen machen wir einfach den Befehl IniRead eine Variabel zuordnen:

AutoIt-Quelltext

IniWrite("Meine erste Ini.ini", "Sektion", "Schlüssel", "Wert")
$Variabel = IniRead("Meine erste Ini.ini", "Sektion", "Schlüssel", "Wert wurde nicht gefunden")
MsgBox(0, "Ini.ini", $Variabel)


Natürlich müssen die Werte aus dem IniWrite dadrin übernommen werden damit er auch die richtige Sektion und den Wert des Schlüssels findet.

So das war das wichtigste des IniRead+IniWrite!
Fertig :D

_IE Funktionen:


Die _IE Funktionen von AutoIt sind sehr hilfreich um zum Beispiel ein Einlogg Bot zu erstellen!

Wir fangen mal an ein Einlogg Bot für AutoIt Bot zu erstellen:

Zunächst muss der Bot den Internet Explorer öffnen, den Befehl ordnen wir noch eine Variabel zu, das brauchen wir nähmlich für später, aber zunächst müssen wir noch IE.au3 includen damit wir überhaupt diese Befehle nutzen können!
Das sind dann so aus:

AutoIt-Quelltext

#include <IE.au3>
 
$IE = _IECreate("http://www.autoitbot.de/index.php?form=UserLogin", 0, 1)


So das haben wir, jetzt müssen wir den Layer herausfinden damit er überhaupt was schreibt, ihr müsst einfach raten um den Layer herauszufinden, fangt von der Zahl "0" an und immer höher bis irgendwas eingegeben kommt:

AutoIt-Quelltext



Jetzt machen wir noch da vor InputBoxen zum Login, der Bot hackt ja keine Profile[Wäre ja schön :D]:

AutoIt-Quelltext



So, jetzt kommen wir auch zum eigentlichen:
Damit er überhaupt was schreibt braucht er ja den Layer und die ID, den finden wir im Quelltext, sucht einfach nach "loginUsername" und "loginPassword"!

Jetzt machen wir wieder eine neue Variabel die heisst:
$Username2

Und der ordnen wir den Befehl "_IEFormElementGetObjByName" zu, dann wüsste er eigentlich auch was er wo hinschreibt.

AutoIt-Quelltext



Jetzt noch so machen das er die Daten aus der InputBox dareinschreibt, dafür den Befehl "_IEFormElementSetValue".

AutoIt-Quelltext



Dann kommt das raus und ihr könnt schon testen, das gleiche nochmal mit Password und fertig :D

AutoIt-Quelltext



Jetzt wollen wir noch so machen das er auch auf Einloggen drückt damit wir sofort eingeloggt sind, dazu den Befehl "_IEFormSubmit".

AutoIt-Quelltext



In _IEFormSubmit einfach die Form angeben und fertig.
_IEFunktionen fertig :D

Die Arrays:


Arrays sind Variablen die mehr als einmal beschrieben worden sind, diese werden oft für For...To...Next Schleifen benutzt. Um die verschiedenen ?Datenfelder", sowie ich sie nenne zusehen, müsst ihr einfach die Array.au3 includen und _ArrayDisplay eingeben.
Um ein Array zuerstellen könnt ihr verschiedene Methoden befolgen:

  • Alles einzeln machen
  • Alles sofort beschreiben


Hier wird es erklärt:

AutoIt-Quelltext



So, natürlich können wir auch UBound benutzen bei der For...To...Next Schleife, UBound gibt die Dimensionen eines Arrays zurück, $Array[1][2] hat 2 Dimensionen und zwar die [1] und die [2], wollen wir jetzt mit UBound die Zweite auswählen machen wir einfach UBound($Array, 2). Hier ist ein Beispiel, leider haben die Arrays keine Dimensionen bzw. haben nur eine:

AutoIt-Quelltext


Das war das wichtigste zu den Arrays :D

GUI mit Hintergrundbild:


Also, jetzt werde ich euch erklären wie ihr in eurer GUI ein Hintergrundbild macht, ihr macht euch erstmal eure GUI, ich nehme als Beispiel mein SpamBot, bei dem werden wir noch bei der GUI eine neue Variable zuordnen, die kann heissen ?$Pic1", diese wird mit GUICtrlCreatePic definiert!

AutoIt-Quelltext



So, wenn wir das gemacht haben, machen wir die Klammer auf und füllen die Parameter aus:

Filename:
Der Pfad des Bildes, das in der GUI als Hintergrundbild angezeigt werden soll.

left, top, width, height:
Die Größe des Bildes, mein Vorschläg wäre das wir es so groß machen wie die GUI selbst, dazu machen wir einfach bei left und top eine Null und bei width und height 383 und 492, das wäre die Größe unsere GUI, da ja left und top in der GUI 0 und 0 ist und width und height 383 492 [Kann man auch als Auflösung der GUI nennen!], so werde ich es auch machen.

style, exstyle:
Das wird wohl jeden klar sein, was für Optionen dieses Bild liefern soll. Kleiner Tipp am Rande: Nie $SS_NOTHIFY benutzen, den wenn du das benutzt, kann es sein das du nicht mehr die Buttons und anderes in der GUI benutzen kannst.

Wenn wir das ausgefüllt haben, dann sollte unser Script so aussehen:

AutoIt-Quelltext



Wenn ihr das alles befolgt habt, könnt ihr auch eine GUI erstellen mit einem schönen Hintergrund, das schmückt alles aus und macht dann auch Freude es zubenutzen!

Die Operatoren:


Die Operatoren sind das wichtigste was man zur Variablendefinition braucht. Um einer Variable etwas zuweisen zukönnen wird z.B. der '=' (Zuweisungs-Operator) gebraucht!
Dieser wird z.B. so benutzt bei einer Variable, wer sich das Tutorial schon richtig angesehen hat, wird wohl wissen was die einzelnen Ausdrücke bedeuten!

AutoIt-Quelltext

Global $VariablenDefiniton = 18


Wir haben der Variable '$VariablenDefiniton' mit dem Zuweisungs-Operator die Zahl 18 zugewiesen, dieser wird jetzt im gesamten Script (Global) in die Variable eingespeichert.
Jetzt wollen wir noch eine Zahl dranhängen, stellen wir uns einfach vor, wir können die Variable nicht noch einmal definieren!
Da benutzen wir einfach den '&='(Verkettung und Zuweisungs-Operator), der hängt an der gespeicherten Variable das gewünschte noch dran!

So sieht es aus, wenn wir den Verkettung und Zuweisungs-Operator benutzen:

AutoIt-Quelltext

Global $VariablenDefiniton = 18
$VariablenDefiniton &= 2


Die Zahl wird nicht mehr mit 18 in die Variable eingespeichert, sondern mit 182, weil die 2 an der vorherigen Variablendefinition drangehängt worden ist!
Sowas ist relativ ratsam bei IniRead und FileRead Befehlen, wenn man noch was in einer Datei / Ini dranhängen will.

Der '+=' (Addition und Zuweisungs-Operator) dient dazu eine Zahl die angegeben worden ist plus die Zahl der Variable zuaddieren. Es gibt 2 Wege hier (die gehen auch bei den anderen):

1.Weg (Zeitaufwändiger):

AutoIt-Quelltext

$VariablenDefiniton = $VariablenDefiniton + 10


2. Weg(Zeitsparender durch den Operator):

AutoIt-Quelltext

$VariablenDefiniton += 10


Natürlich wäre es hier ratsam den 2. Weg zufolgen!
Unteranderem gibt es noch anstatt '+=':
  • -= : Subtraktion und Zuweisungs-Operator
  • /= : Division und Zuweisungs-Operator
  • *= : Multiplikation und Zuweisungs-Operator


Diese Operatoren werden oft für die Variablendefinition gebraucht!
Natürlich kann man auch vom Variablen weg ableiten und alles manuell machen, z.B. man addiert etwas und lässt es in einer Nachrichtenbox ausgeben:

AutoIt-Quelltext

MsgBox(0, "Addieren", 5 + 10)


So kann man es auch in verschieden Varianten machen:

AutoIt-Quelltext

MsgBox(0, "Addieren", 10 - 5)

AutoIt-Quelltext

MsgBox(0, "Addieren", 5 * 10)

AutoIt-Quelltext

MsgBox(0, "Addieren", 10 / 5)


Noch etwas in Autoit sind die logischen Operatoren.
Diese werden oft bei Schleifen-Anfängen und If-Abfragen benutzt, wie z.B. der Operator 'And', wer jetzt englisch kann, weiß das 'And' auf Deutsch 'Und' heißt.
Man könnte z.B. den 'And' Operator in diesem Beispiel benutzen:

AutoIt-Quelltext

If 5 + 10 And 10 + 5 = 15 Then
MsgBox(0, "Addieren", "15")
EndIf


Wenn beide Ausdrücke wahr sind, wird die Nachrichtenbox ausgeführt mit dem Ergebnis von 5 + 10 bzw. 10 + 5 !
Dann gibt es den logischen Operator 'Or' (deutsch = oder), der bezieht sich in einer If-Abfrage darauf, wenn eines der beiden Ausdrücke wahr sind das dann das passiert was in der If-Abfrage angegeben ist im Then-Teil.

So könnte es z.B. aussehen:

AutoIt-Quelltext

If 5 + 10 Or 17 + 5 = 15 Then
MsgBox(0, "Addieren", "15")
EndIf


Der letzte logische Operator ist 'Not' (deutsch = nicht), dieser dient dazu in der If-Abfrage, etwas abzufragen was nicht der Wahrheit entspricht.

Hier hab ich auch mal ein schönes Beispiel:

AutoIt-Quelltext

If Not 6 + 10 Or 17 + 5 = 15 Then
MsgBox(0, "Addieren", "6 + 10 oder 17 + 5 entspricht nicht 15!")
EndIf


Dann gibt es noch die <> (Größer - kleiner Operatoren), da kann das '=' Operator durch diese ersetzt werden, wenn z.B. etwas größer ist, oder wenn z.B. etwas nicht das ist was angegeben ist.

Z.B.:

AutoIt-Quelltext



Man kann schließlich mit den Operatoren variieren und es nach seinen Gunsten einstellen.
Hoffe das ich euch einen "leichten" Teil nochmal erläutert habe, ein paar Operatoren habe ich noch aus der Hilfe rausgesucht, wusste nicht alle auswendig!

Hier nochmal eine Liste aller logischen Operatoren:

Quellcode

;Ohne Zeichen
$String = ""
If $String <> "" Then
MsgBox(0, "String", "String beinhaltet Zeichen!")
Else
MsgBox(0, "String", "String beinhaltet keine Zeichen!")
EndIf
; Mit Zeichen
$String = "Tutorial"
If $String <> "" Then
MsgBox(0, "String", "String beinhaltet Zeichen!")
Else
MsgBox(0, "String", "String beinhaltet keine Zeichen!")
EndIf



Die Referenzen:

Eine Referenz ist ein anderer Name für ein bereits existierendes Objekt. Bei der Definition einer Referenz wird also kein neuer Speicherplatz belegt. Alle Aktionen mit der Referenz werden mit dem Objekt durchgeführt, auf das die Referenz verweist.
Referenzen werden vor allem als Parameter und Return-Wert von Funktionen eingesetzt!
Würden wir also eine Funktion schreiben namens _Verdoppeln und wir verweisen auf den Parameter $iZahl mit der Referenz, werden alle Änderungen auch in der übergebenen Variable durchgeführt.

Anhand dessen Beispieles könnt ihr es euch besser vorstellen:

AutoIt-Quelltext



Hier stellt außerdem ByRef eine große Rolle da, die sollte bei einer Funktion immer vor der Parameter-Variable stehen!
Ist zwar nicht so viel, kann aber sehr helfen, wenn man eine UDF schreiben will!


Positiv bewerten ;), sollte euch das Tutorial gefallen haben :D


Endlich ist mein Tuturial fertig.
Wenn noch Unklarheiten auf kommen, tut mir leid, das Tuturial ist ein bisschen lang geraten und mit der Zeit hab ich mein Verstand verloren nicht Böse sein, trotzdem mal in der Sufu, Hilfedatei oder Wiki gucken Viel Spass!!!!

EUER UNDERSTOOD :D
Kommentare Es sind zur Zeit noch keine Kommentare vorhanden...