AutoIT für Einsteiger

  • Hallo liebe Godlikerz,
    Nun, da es hier noch kein Tutorial für Einsteiger gibt, dachte ich mir, ich mache eins.
    Also fange ich mal an

    [FELD="Inhaltsverzeichnis"]
    1. Was ist AutoIT
    2. Hallo Welt
    3. Variablen
    4. Arrays
    5. Bedingungen
    6. Das erste Programm: Ein einfacher Rechner
    7. GUIs
    8. Schleifen
    9. TCP
    10. Funktionen
    11. UDFs
    12. Nützliche Links
    13. Credits[/FELD]

    [COLOR="Yellow"][SIZE="5"]1. Was ist AutoIT:[/SIZE]

    Autoit ist eine BASIC ähnliche Sprache und wurde 1999 von Jonathan Bennett erfunden. Ursprünglich war AutoIT dazu gedacht, Aufgaben auf vielen tausenden PCs zu automatisieren. Durch die einfache Syntax lassen sich sogar Spiele, Chats usw entwickeln. AutoIt Programme werden meistens als Virus erkannt, diese haben aber alle ein AutoIt in der Bezeichnung. Dies basiert darauf, dass man mit AutoIt leider auch Viren entwickeln kann.
    Für dieses Tutorial brauchen wir folgende Dinge:

    Das AutoIt Grundpaket: DOWNLOAD AUTOIT CORE
    Enthalten ist:
    -Der AutoIt Core
    -Einige Skriptbeispiele
    -UDFs (mehr dazu später)
    -Eine Lightversion von Scite (Scintilla Text Editor)

    Das erweiterte Scitepaket: DOWNLOAD SCITE4AUTOIT
    Enthalten ist:
    -Eine erweiterte Sciteversion für Autoit, mit vielen nützlichen Tools wie Tidy, Koda Formdesigner usw.

    Nicht unbedingt gebraucht, aber nützlich sind folgende Sachen:

    -Organize Includes DOWNLOAD
    -Die deutsche Hilfe: DEUTSCHE HILFE [/COLOR]

    [FELD="Hinweis:"]Es wäre ratsam, sich einen Ordner Autoit auf dem Desktop oder so anzulegen und darin einen Ordner Tutorial. Dies hilft der Organisation.[/FELD]

    [COLOR="Cyan"][SIZE="5"]2. Hallo Welt:[/SIZE]

    Das HalloWelt Programm ist sozusagen der Grundstein jedes Entwicklers.Zunächst öffnen wir unseren Ordner, den wir vorhin angelegt haben und machen einen Rechtsklick darin. Danach auf Neu und dann auf AutoIt v3 Script. Die nun erscheinende Datei nennen wir HalloWelt (manche müssen vielleicht noch ein .au3 dabeisetzen, sofern es schon im dateinamen der angelegten Datei ist)
    Nun öffnen wir diese datei per Doppelklick.
    Es sollte sich ein Scitefenster öffnen, indem schon etwas steht. Dies sind Kommentare. Kommentare sind Zeilen, die später vom Compiler ignoriert werden. Sie dienen lediglich zum notieren, was das Tool an dieser Stelle macht, sollten aber nicht zu oft genutzt werden.
    Nun markieren wir alles und löschen es. Danach schreiben wir folgendes in die Datei:

    Code
    MsgBox(0,"Hallo","Hallo Welt")


    Erklärung:
    MsgBox: Der Befehl
    0: der Flag, kann in der Hilfe nachgelesen werden, welche es noch gibt.
    "Hallo": Der Name, der später in der Titelleiste der Box kommt
    "Hallo Welt": Der Text der MsgBox

    Nun drücken wir F5 und unten in Scite öffnet sich ein kleines Fenster, in der einige Sachen stehen.
    Normalerweise sollte nun unsere MsgBox erscheinen und der Inhalt ist Hallo Welt.[/COLOR]

    [COLOR="Red"][SIZE="5"]3. Variablen:[/SIZE]

    Variablen kann man sich wie Töpfe vorstellen. In jeden Topf passt genau eine Sache. wenn wir später dem Topf eine andere Sache zuweisen wollen, müssen wir zuerst den alten Inhalt heraustun.
    Deklarieren d.h bereitmachen tut man Variablen über folgende Commands:

    Code
    Dim
    ReDim
    Local
    Global


    Aber normalerweise sollte es reichen, eine Variable zu deklarieren, indem man ihr einen Wert zuweist.

    Code
    $variable=1


    [FELD="Hinweis:"]Variablen dürfen keine Umlaute wie ä,ö,ü enthalten[/FELD][/COLOR]

    [COLOR="Lime"][SIZE="5"]4. Arrays:[/SIZE]

    Arrays sind eine weiterentwickelte Form von Variablen.
    Normalerweise kann man einer Variable nur einen Wert zuweisen.
    Mit einem Array kann man der Variable mehrere Werte zuweisen.
    Über Arrays gibt es einen guten Guide von *electriZer*, deshalb brauche ich hier nicht weiter drauf einzugehen: LINK
    [FELD="Merke:"]Ein Programmierer zählt immer von 0 bis 9[/FELD][/COLOR]

    [COLOR="Orange"][SIZE="5"]5. Bedingungen:[/SIZE]

    Bedingungen werden im deutschen normalerweise ja mit Wenn, dann eingeleitet.
    In Autoit Nutzt man dafür If, Then .
    Ein einfaches Beispiel für eine Bedingung:

    Code
    $1=1
    $2=2
    
    
    If $1 > $2 Then ;wenn $1 größer als $2, dann...
    Msgbox(0,"","$1 ist größer")
    Else ;ansonsten
    MsgBox(0,"","$2 ist größer")
    EndIf


    Eine Bedingung kann man noch mit folgenden Parametern erweitern:

    Code
    Not 
    Or
    And


    Bei Not heißt es so: Wenn nicht.
    Bei Or muss eine der gestellten Bedingungen zutreffen
    Bei And müssen alle Bedingungen zutreffen[/COLOR]

    [COLOR="Magenta"][SIZE="5"]6. Das erste Programm: Ein einfacher Rechner[/SIZE]
    Legt im Ordner Tutorial eine neue Skriptdatei an. Nennt diese "einfacher rechner" (ohne "")
    Diese Aufgabe sollt ihr nun selbst lösen. Nehmt ausser dem gelernten noch den befehl InputBox.
    Für alle, die die Lösung nicht wissen, habe ich hier ein Script vorbereitet:

    Lösung

    [/COLOR]

    [COLOR="Blue"][SIZE="5"]7. GUIs :[/SIZE]
    Auch zu GUIs gibts einen guten Guide, diesmal von mir: KLICK
    Deshalb brauche ich auch hier nicht weiter drauf eingehen[/COLOR]

    [COLOR="Plum"][SIZE="5"]8. Schleifen: [/SIZE]

    Schleifen sind Teile im Code, welche immer wieder ausgeführt werden.
    Es gibt 3 Arten an Schleifen:

    8.1 Die While Schleife:
    Die While Schleife beginnt immermit

    Code
    While 1;der inhalt wird jede millisekunde ausgeführt


    und endet mit

    Code
    WEnd


    Der Inhalt der Schleife wird ohne Unterbrechung ausgeführt, solange das Programm läuft oder man

    Code
    ExitLoop

    benutzt.

    8.2 Die Do Until Schleife:
    Diese Schleife wird nur solange ausgeführt, bis die unter Until angegebene Bedingung wahr ist.
    zum Beispiel:

    Code
    $erg=0
    Do
    $erg +=1
    Until $erg=10;wird solange ausgeführt, bis $erg 10 ist

    8.3 Die For Schleife
    Die For-Schleife wird nur solange durchlaufen bis sie x-mal durch ist.
    Nützlich zb dann, wenn man ein Array hat und mit jedem Element die gleiche Aktion durchführen will.
    z.B:

    Code
    Dim $array[2]
    $array[0]="Hallo"
    $array[1]="Wie gehts"
    For $i=0 To $array[2]
    Msgbox(0,"",$array[$i]
    Next


    Nun erscheinen zwei MsgBoxen, einmal mit Hallo un einmal mit Wie gehts.
    Erklärung
    $i=ist die zählervariable
    $array[$i] :hier wird das array genommen, welches den gleichen Index hat, wie $i
    Next ;beendet den durchlauf und fängt einen neuen an, $i wird um 1 erhöht.
    [/COLOR]

    [COLOR="PaleGreen"][SIZE="5"]9. TCP:[/SIZE]
    Hier gibts auch wieder......Na klar, nen Guide: LINK[/COLOR]

    [COLOR="DarkOrchid"][SIZE="5"]10. Funktionen:[/SIZE]

    Funktionen kurz Funcs^^ sind Teile des Programms, die genutzt werden, um einen bestimmten Bereich an Programmcode nur einmal zu schreiben, aber immer wieder auszuführen.
    So benutzt man eine Func:

    Code
    Func _test();ganz wichtig: die (), das _ ist optional, dient aber der besseren unterscheidung im Code
    Msgbox(0,"","Hi wie gehts")
    Endfunc
    ;nun reicht ein _test() und die func wird aufgerufen

    [/COLOR]

    [COLOR="PaleTurquoise"][SIZE="5"]11. UDFs:[/SIZE]
    UDFs sind [COLOR="Red"]User Definied Functions[/COLOR], d.h User Definierte Funktionen.
    Sie erweitern die Standartfunktionen von Autoit noch um weitere Funktionen.
    Wenn man eine Funktion aus einer anderen Datei benutzen will, nimmt man folgenden Befehl:

    Code
    #include <datei.au3>


    Dies sorgt dafür, dass der Compiler den Inhalt der datei.au3 ins Script kopiert, um die enthaltenen Funktionen zu nutzen.[/COLOR]

    [FELD="12. Nützliche Links"]
    - AutoIt Script Home Page ----> die offizielle Homepage von AutoIt
    - Portal - .: autoit.de :. - Das deutsche AutoIt-Forum ----> das deutsche AutoIt Forum[/FELD]

    [FELD="13. Credits"]
    -*electriZer* : für die TCP und Array Guides
    - me: für den Rest[/FELD]

    [FELD="Special Thanks:"]
    - xDrago : fürs Sticky machen[/FELD]

    Dies war mein Einsteigerguide.
    Hoffe er gefällt euch und hilft vorallem.
    Bitte vergesst nicht, mir ein THX und/oder Karma zu geben

    Euer
    internetfreak

  • oO geil xD find das gradma voll passend ^^
    thx haste ^^ für mich aufjedenfall lehrreich xD

    mfg Assoult :zomg:

    [CENTER]ISYMFS[/CENTER]

  • erstmal danke für die gute bewertung
    habe schliesslich mindestens ne stunde drangesessen
    falls noch was gutes kommt, werde ich es evt hier reinsetzen

    @eline
    sag mir doch bitte, was ich ändern soll, dann würde ich es tun
    damit meine ich wegen der farbe

    ich selbst finde den guide auch sehr klasse, denn autoit ist so hervorragend, wenn man schnell programmieren lernen will. ( ich hab 2 tage gebraucht, schon konnte ich einiges, wie zb die grundzüge des taschenrechners)
    ausserdem bringt es die passenden vorrausetzungen für andere skriptsprachen, da es viele gemeinsamkeiten wegen der syntax hat

  • mal ne frage xD ?
    bin ja vol der anfänger wie jetz glaub ich so einige hier wissen ^^
    aber was ist eine bedingung

    Zitat

    $1=1
    $2=2

    If $1 > $2 Then ;wenn $1 größer als $2, dann...
    Msgbox(0,"","$1 ist größer")
    Else ;ansonsten
    MsgBox(0,"","$2 ist größer")
    EndIf

    ehm ich weis nicht was das bringt wan ist den $1 größer als $2 xD wen man das ausführt erscheint eine msgbox mit der anchricht $ ist größer ._. ich versteh das nicht ?.?

    [CENTER]ISYMFS[/CENTER]

  • Zitat von Assoult;16688

    mal ne frage xD ?
    bin ja vol der anfänger wie jetz glaub ich so einige hier wissen ^^
    aber was ist eine bedingung


    ehm ich weis nicht was das bringt wan ist den $1 größer als $2 xD wen man das ausführt erscheint eine msgbox mit der anchricht $ ist größer ._. ich versteh das nicht ?.?

    Zitat

    $1=1
    $2=2

    Der Code (String or whatever) ist $1=1 das sollte klar sein. Es geht auch $1=affe oder ähnliches.

    Zitat

    If $1 > $2 Then
    Msgbox(0,"","$1 ist größer")
    Else ;ansonsten
    MsgBox(0,"","$2 ist größer")
    EndIf

    Normalerweise wird alles abgeackert. Bei einer If (Wenn) Schaltung muss sich das Script entscheiden wann es etwas tut.

    [COLOR="DeepSkyBlue"]If $1 > $2 Then[/COLOR] frägt das script ob der String $1 größer ist als $2.

    Wenn es so ist kommt die MsgBox $1 ist größer (ist es aber nicht, 2 ist größer als 1). Deshalb kommt jetzt die Else Schaltung. Das sagt dem Script was er tun soll, falls das If nicht so ist.

    Hier gibt die MsgBox aus, dass $2 größer ist und das stimmt auch. Wenn man nach dem Else nichts eingibt (bzw es weglässt?) unternimmt er gar nichts wenn 1 kleiner ist als 2.

    Das ist zum Beispiel nützlich um dem Script zu sagen, was er machen soll wenn eine Anwendung gerade läuft (notepad oder so).

  • nochma ob ichs verstanden hab bei dem über else fragt er ob es größer ist weilees nicht so ist musst du nach else eingeben wie es richtig ist wen du das nicht tuen würdest käme keine nachricht oO ?

    [CENTER]ISYMFS[/CENTER]

  • Assoult
    if fragt, obs so ist, wenn ja, dannwürd der code benutzt direkt unter if
    ansonsten nimmt er als ausweg dann den else zweig, der zb dann nen fehlermeldung beinhalten kann

    @all
    also erstmal thx für die thx und auch die netten karma
    ist sehr lieb von euch
    damit kann ich auf IG abblitzen, da hätte ich nie karma für bekommen
    godlikerz ist wirklich besser als IG
    hätte gerne noch mehr bewertungen hier im thread

  • Zitat von Assoult;16698

    nochma ob ichs verstanden hab bei dem über else fragt er ob es größer ist weilees nicht so ist musst du nach else eingeben wie es richtig ist wen du das nicht tuen würdest käme keine nachricht oO ?

    Bei else gibts du ein was er tun soll, wenn es nicht richtig ist. Verbessern muss er es nicht. Wenn nach else nichts steht macht er auch nichts.

    Wenn es vormittag ist, schreibst du guten morgen. Wenn nicht, schreibst du guten tag.

    Nach dem If frägst du die Zeit ab. Dann kommt, was er tun soll wenn es so ist. Nach dem Else, was er tun soll wenn es nicht so ist (wenn nichts da steht, macht er nichts). EndIf schließt die Bedingung.

    lg

  • Solltest noch hinzufügen dass AutoIt nichts für Leute ist die nicht wollen ,dass man ihr Werk einfach so "klauen" kann ;)

  • wieso sollte ich das tun
    man kanns werk niucht einfach so klauen
    dafür brauchste nen decompiler
    ausserdem, wenn du obfuscator nutzt, werden selbst decompiler es schwer haben
    dann klaut dir niemand das werk
    ausserdem is das ein thread für ein tut und nicht für sowas, wie du sagtest

  • push it baby^^
    nochn bissl mehr bewertung wär nich schlecht
    das tut hilft euch, schnell in autoit einzusteigen und bereits nach 2-3 tagen habt ihr genug gelernt, um simple bots zu amchen

  • Ich wollte dich nur mal darauf aufmerksam machen, das der 2. Link für die Downloads nicht mehr aktuell ist: ''404 - Not found''
    Könntest du einen neuen hineinstellen? Ich bin nämlich ein Noob auf diesem gebiet und wollte es langsam versuchen zu lernen. xD

    [center][FELD="Neulich im Chat mit xDrago"]
    xDrago: sorry war beschäftigt, ich musste das weiße Pulver auf nem bonbon wegblasen
    Ich: junge, das bläst man nich ab, das zieht man sich durch die Nase![/FELD][/center]

  • du meinst die deutsche hilfe oder xD
    ^^ wenn du willst kann ich dir helfen adde mich einfach mal in icq/msn/skype
    steht ja in meinem kontakt

    mfg ^^

    [CENTER]ISYMFS[/CENTER]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!