Hallo, ich habe hier ein Tutorial geschrieben was einigen Anfängern helfen soll.
Ich werde es immer wieder Updaten!
ZitatWillkommen zu meinem Autoit Tutorial!
Zuerst fangen wir mit einem Hallo World Tutorial an!
Anschließend wird ein GUI Tutorial gezeigt welches das Selbe wie ein Hello World ist,
jedoch macht ihr die GUI selbst.
Anschließend noch weitere Funktionen!
Hello World
[autoit]
MsgBox(0, "Hello World Tutorial #1", "Hello World!")
ZitatHier wird eine MessageBox erstellt.
Eine MessageBox(MsgBox) ist eine Box in der Informationen angezeigt werden.
Unter Windows wird oft sowas als Fehlermeldung genutzt!
ZitatAlles anzeigenMsgBox() ruft die Funktion MsgBox auf unt übergibt folgende Parameter
flag = 0
Das bedeutet es wird ein "OK" angezeigt, weitere Flags findet ihr in der Hilfe Datei oder hier:Flag (dezimal) Resultierende(r) Button(s) Flag (hexadezimal)
0 OK 0x0
1 OK und Abbrechen 0x1
2 Abbrechen, Wiederholen und Ignorieren 0x2
3 Ja, Nein, und Abbrechen 0x3
4 Ja und Nein 0x4
5 Wiederholen und Abbrechen 0x5
Weitere: http://translation.autoit.de/onlinehilfe/functions/MsgBox.htmAls nächstes wird der Parameter "Title" oder auf deutsch "Titel" übergeben.
In diesem Fall: "Hello World Tutorial #1"
Das ist die "Überschrift" der MessageBox, wichtig ist das hier Text in Anführungszeichen
geschrieben sind!
Der Dritte Parameter ist der text.
Dieser Behinhaltet: "Hello World!".
Auch hier ist es wichtig in Anführunszeichen zu schreiben.
MsgBox mit Variablen
[autoit]$flag = 0
$title = "Hello World Tutorial #2"
$text = "Hello World!"
MsgBox($flag, $title, $text)
ZitatAus der Mathematik kennt ihr Variablen, hier sind Variablen Platzhalter.
Auch hier sind Variablen Platzhalter, welche Vorher delkariert werden müssen!
Deklariert bedeutet sie müssen einem Bestimmten Wert oder Text zugeordnet werden.
Eine Variablen muss immer mit dem Dollarzeichen ($) Anfangen!
Hier wird bis auf den Titel das gleiche wie in der Ersten MessageBox ausgegeben.
Anschliesend wird ein Ist Gleich Zeichen (=) benutzt um der Variable einen Bestimmten Wert zuzuweisen.
MsgBox mit Array(s)
[autoit]Global $msgbox[4]
$msgbox[0] = "3"
$msgbox[1] = "0"
$msgbox[2] = "Hello World Tutorial #3"
$msgbox[3] = "Hello World!"
MsgBox($msgbox[1], $msgbox[2], $msgbox[3])
ZitatAlles anzeigenEin Array ist fast das gleiche wie eine Variable nur das man sie hier in Dimensionen einteilen kann was später besser für die Übersicht ist!
Um einen Array zu deklarien muss man wissen wie viele Indexnummern man benötigt und Deklariert diesen mit einem Global, Local oder Dim.
Global bedeutet das diese Variable oder der Array im ganzen Script benutzt werden kann.
Local dagegen nur in der AKtuellen Funktion in der man sich gerade befindet.
Dim ist das selbe wie Local, es sei denn, es gibt eine globale Variable des selben Namens (in diesem Fall wird die globale Variable verwendet).
Anschließend wird in einer Klammer [] die Anzahl der Indexnummer hineingeschrieben.
Nun wird eigentlich deklariert.
Ein Array fängt immer bei 0 an.
Normalerweiße speichert man im Index 0, die anzahl der Indexnummern (In diesem Falle 3 da 4 nicht existiert!
Wichtig ist hierbei das man nicht verschiedene Datentypen wie z.b.
"0" und 0 oder wahr und "wahr" benutzt. Es ist zwar Grundsätlich möglich, wird aber nicht empfohlen!
Array Auslesen mit einer For-Schleife
For $i = 1 To $msgbox[0] Step +1
MsgBox(0, "Array wird ausgelesen aktuell: $msgbox[" & $i & "]", "$msgbox[" & $i & "] = " & $msgbox[$i])
Next
ZitatAlles anzeigenHier wird es schon komplizierter! Aber man kann es verstehen!
Eine For-Schleife macht etwas solange bis etwas erfüllt ist.
For $i = 1 bedeutet einfach das die Variable $i gleich 1.
To $msgbox[0] (Wir erinnern uns $msgbox[0] = 3) bedeutet er macht die Schleife
solange, bis $i = $msgbox[0] bzw. 3 ist.
Step +1 bedeutet das nach jedem Durchlauf der Schleife $i um 1 erhöht wird.
Nun wird wieder eine MessageBox geöffnet, im Titel sehen wir ein neues Zeichen das Kaufmännische Und (&)
Dies bedeutet das dem Text noch etwas hinzugefügt wird, in diesem Falle die Variable i (Die die Aktuelle Zahl enthält)
Nun wird wieder Text ausgegeben in welchem Array er sich gerade befindet. mit $msgbox[$i] wird der Array ausgegeben und der Index wird durch die Variable i eingegeben.
Mit Next wird die Schleife verlassen.
For Schleife als Countdown
For $i = 1 To 10 Step +1
MsgBox(0, "Countdown",$i & " Die MessageBox schließt automatisch!", 1)
Next
ZitatHier wird euch wieder einiges neues gezeigt.
Wie die Vorschleife Funktioniert hast du ja bereits gelernt.
Hier wird statt dem Array eine Zahl (hier 10) genommen. Das bedeutet er geht die Schleife 10 mal durch.
In der MessageBox wird Angezeigt bei welcher Zahl er gerade ist. Hier gibts einen neuen Parameter (timeout)
Das timeout bedeutet das die MessageBox nach x Sekunden schließt (hier nach einer Sekunde)
(Un-)Endliche While Schleife
[autoit]$i = 1
While 1
MsgBox(0, "(Un-)endliche Schleife 1", "Diese Schleife geht unendlich" & @CRLF & "MessageBox schließt automatisch!", 1)
$i += 1
If $i = 5 Then ExitLoop
WEnd
ZitatAlles anzeigenHier wird die wieder viel neues beigebracht, aber keine Angst ich erkläre alles!
Zuerst wird hier $i Deklariert da ansonsten die Schleife nie aufhören würde
Nun wird die While Schleife begonnen mit While und der 1
Das bedeutet weil 1 = 1 ist wird die Schleife solange durchgeführt bis 1 nicht mehr 1 ist und das wird nie der Fall sein.
Also wird hier $i bei jedem Durchlauf um 1 erhöht.
Nun gibts eine erste Abfrage (If)
Nun wird gefragt wenn $i = 10 ist dann mache dies und das in diesem Falle ExitLoop.
ExitLoop bedeutet er verlässt die Aktuelle Schleife!
Mit @CRLF wird eine Zeile weiter geschrieben.
Endliche While Schleife
$i = 1
While $i = 1
MsgBox(0, "Endliche Schleife 2", "Diese Schleife geht nicht unendlich" & @CRLF & "MessageBox schließt automatisch!", 1)
$i += 1
WEnd
ZitatHier wird Die While Schleife solange durchgezogen bis $i nicht mehr 1 ist und das ist nach dem
$i +=1 nach dem ersten durchlauf.
Do ... Until Schleife
[autoit]$i = 1
Do
MsgBox(0, "Endliche Schleife 3", "Diese Schleife geht nicht unendlich" & @CRLF & "MessageBox schließt automatisch!", 1)
$i += 1
Until $i = 5
ZitatDie Do ... Until Schleife ähnelt sehr der While Schleife.
Die Schleife wird solange durchgeführt bis irgendetwas übereinstimmt.
Hier wird anders wie bei der While Schleife die Bedingung nicht am Anfang sondern am Ende geschrieben.
Hier haben wir wieder die MessageBox die 5 mal geöffnet wird, da in jedem
Durchlauf $i um 1 erhöht wird.
Wenn $i gleich 5 ist wird die Schleife beendet!
MessageBox-GUI
[autoit]#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Hello World Tutorial #4", 258, 62, 541, 352)
$Button1 = GUICtrlCreateButton("OK", 8, 32, 235, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Hello World!", 8, 8, 62, 17)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button1
MsgBox(0, "Hello World Tutorial #4", "Hello World!")
ExitLoop
EndSwitch
WEnd
ZitatAlles anzeigenIch kann euer Gesicht mir jetzt gut vorstellen, aber keine Angst! Es ist leichter als es aussieht!
Als erstes werden Dateien Includiert, welche im Autoit Include Ordner sind!
In diesen Dateien befinden sich Funktionen die das Script aufruft.
Dann wird EIn GUICreate erstellt, welches eine GUI erstellt mit dem ersten Parameter als Titel,
die anderen sind die Größen und Koordinaten für die GUI.
Dann wird der OK Button erstellt und ein Label mit dem Text, Hello World.
Es ist also ähnlcih wie eine MessageBox.
Bei einer GUI empfiehlt sich den Koda Form Designer für Autoit zu verwenden, mit dem es Kindrleicht ist
eine GUI zu basteln (ohne die Codes kennen zu müssen)
Ein Tutorial für Koda folgt!
Nun haben wir eine While Schleife.
und ein Switch Befehl.
Mit Switch wird ausgelesen was in der Variable $nMSG befindet.
Mit Case wird überprüft ob das was in $nMSG steht das selbe sit wie das was nach dem Case kommt ist.
$GUI_EVENT_CLOSE beeutet wenn der Rote X Button geklickt wird.
$Button1 ist der OK Button.
Rechnen
[autoit]$a1 = InputBox("Bitte gib eine Zahl ein", "Gib hier eine Zahl ein Die Höher als 100 ist:")
$a2 = InputBox("Bitte gib eine Zahl ein", "Gib hier eine Zahl ein Die kleiner als 10 ist:")
$a3 = $a1 + $a2
$a4 = $a1 - $a2
$a5 = $a1 * $a2
$a6 = $a1 / $a2
MsgBox(0, "Rechnung Beendet", "Folgendes wurde berechnet: " & @CRLF & "Erste Zahl + Zweite Zahl = " & $a3 & @CRLF & "Erste Zahl - Zweite Zahl = " & $a4 & @CRLF & "Erste Zahl * Zweite Zahl = " & $a5 & @CRLF & "Erste Zahl / Zweite Zahl = " & $a6 & @CRLF )
Kommentare
;Ein einzeiliges Kommentar
#cs
Ein
mehrzeiliges
Kommentar
#ce
ZitatHier haben wir Kommentare die dir und anderen helfen den Code zu verstehen.
mit ; fängst du ein Einzeiliges Kommentar an.
Mit # und cs ein Mehrzeiliges und mit # und ce beendest du das mehrzeilige Kommentar wieder.
So, ich hoffe euch hat das Tutorial gefallen, ich werde nach und nach das Tutorial erweitern!