Autor Thema: Autoit Anfänger Tutorial  (Gelesen 1178 mal)

Xunai

  • Administrator
  • Hero Member
  • *****
  • Danke
  • -vergeben: 9
  • -erhalten: 70
  • Beiträge: 745
    • Profil anzeigen
Autoit Anfänger Tutorial
« am: Mai 20, 2009, 09:36:05 »
dieses tut hat MaZze von cpg geschrieben und ich ?bernehme es hier weil es einfach sehr aufschlussreich ist und man sollte es sehr gut verstehen ohne vorkenntnise.
______________________________________________________________

[AutoIt] Grundlagen I


Erste schritte :

- Ladet euch AutoIt runter
(am besten die neueste version)

You are not allowed to view links.Register or Login
http://www.autoitscript.com/autoit3/downloads.shtml


- Macht euch etwas mit dem Programm vertraut
(einfach mal starten und sich angucken wie es so aussieht)



______________________________________________________________

Wir schreiben unser erstes Programm :

Als erstes zeige ich euch den gesamten Code, anschlie?end werde ich st?ck-f?r-st?ck alles erkl?ren.

Zitat
Run ("notepad.exe")
WinWaitActive ("Unbenannt")
Send ("Jetzt wird Text getippt...")
Send ("{enter}")
Send ("Das k?nnten wir auch selbst machen...")
Send ("{enter}")
Send ("Aber wozu haben wir AutoIt?")
Sleep (5000)
Send ("!{F4}")
Sleep (1000)
Send ("{right}")
Sleep (1000)
Send ("{enter}")
Exit



Startet den "SciTE Script Editor". (Alle Programme / AutoIt v3 / SciTE Script Editor)
(Standard gem?? sollte jetzt ein leeres project vor euch sein)

______________________________________________________________

Jetzt kommen wir zu den einzelnen befehlen:

Den anfang habe ich mit Run ("notepad.exe") gemacht.
Run ("dateiname")

Besonders wichtig ist es den dateinamen in "xxx.exe" zu schreiben.
Bei AutoIt werden die meisten bestimmten werte in "xxx" zeichen geschrieben.
Ansonsten sind es einfach zahlen oder zeichen die nichts bedeuten.
(Das trifft nicht auf alles zu ! Aber f?r unser beispiel sind die "xxx" zeichen sehr wichtig !)

In unserem Fall war das "notepad.exe".

Da Notepad ein standard programm ist brauchen wir hier ausnahmsweise mal keinen genauen pfad.

Nat?rlich gibt es auch hier aussnahmen.

Beispielsweise muss man bei einer datei die im selben ordner ist wie euer script/programm auch keinen pfad angeben.
Bei allen anderen Programmen w?re es jedoch ratsamer einen pfad anzugeben.

______________________________________________________________

Als n?chstes kam der befehl WinWaitActive ("Unbenannt") an die reihe.

WinWaitActive ("fenstertitel")

    AutoIt arbeitet extrem schnell !
    (wenn man mal unsere eigene geschwindigkeit bedenkt)

    Und wie jedes Programm ist AutoIt auchnur so "klug" wie der programmierer.
    So w?rde unser script einfach "drauflos-tippen" h?tte ich die vielen Sleep() befehle nicht gesetzt.

    Durch den Befehl
    WinWaitActive (fenstertitel)
    wartet AutoIt solange mit seiner Arbeit bis das Fenster bereit und aktiv ist.

    Sehr nützlich, sollte man im hinterkopf behalten.

    Der titel ist nichts anderes als dieser kleine text da oben im fenster.


    Umso genauer man ihn eingibt,umso besser kann man Autoit auch nutzten.
    (in unserem beispiel reicht es wenn wir nur "Unbenannt" schreiben)
______________________________________________________________

Jetzt kommen wir zu einem befehl den wir wohl am häufigsten benutzt haben : Send


Send ("text/{tasten}")

Mit diesem befehl wird einfach etwas abgeschickt.
Seien es texte oder aber bestimmte knöpfe.

Ganz wichtig ist hierbei folgendes :
Wenn man text verschicken will schreibt man :
Send ("text")

Will man bestimmte knöpfe senden (z.B. strg/alt/esc/enter/etc) schreibt man
Send ("{tasten}")

Aber ganz wichtig, bei beiden varianten ist es, dass ihr immer darauf achten m?sst das euer text zwischen "xxx" steht.
Ansonsten klappt es nicht.

Nat?rlich kann man beides auch wunderbar kombinieren. So ist es z.B. kein Problem wenn ich schreiben w?rde :
Send ("Zeile1{Enter}Zeile12{Left}{Delete}{Right}{Enter}Zeile3")


______________________________________________________________

Der nächste befehl ist Sleep :

Sleep (1000)

Sleep (wartezeit)

Mit Sleep kann man wunderbar programme pausieren.
Oder einen kleinen "zwischen-stop" einlegen.

Hier ist besonders zu beachten das die wartezeit in millisekunden aufgeschrieben wird.
Da wohl die meisten neulinge lieber auf "ganze sekunden" vertrauen solltet ihr euch einfach folgendes merken :

1000 = 1 sekunde

Ich hab den befehl benutzt damit ihr euch die schritte im notepad etwas schöner ansehen könnt.
Es würde auch ohne gehen. (aber dann würde die show schon vorbei sein bevor ihr wisst was los ist)

______________________________________________________________

Jetzt kommen wir noch einmal zu Send


Send ("text/{tasten}")

Man kann tasten+text in einer bestimmten reihenfolge abtippen.
Aber natürlich ist es auch m?glich ganze tastenkombinationen zu benuzten.

In unserem beispiel habe ich die kombination alt+F4 benutzt. (damit schlie?t man das ge?ffnete fenster)

Bei AutoIt gibt es für die knöpfe Strg/Alt/etc. bestimmte "sonderzeichen".

Alt = !
Strg = ^

Also hab ich geschrieben :

Send ("!{F4}")
______________________________________________________________

Und nun kommen wir auch zum ende unseres scripts.

Dieses ende symbolisieren wir mit dem befehl :

Exit

Durch diesen befehl wird euer script einfach geschlossen.

Und er muss nicht immer "nur" am ende eines scripts stehen.
Mit ihm kann man ein programm im fall der f?lle auch einfach schlie?en.
(If/Else - HotkeySet - etc.)

______________________________________________________________



Wichtig :

AutoIt-Projecte (source-files) werden immer als *.au3 Datein gespeichert !
Niemals direkt als *.exe speichern !
Dazu gibt es den Compiler :)

______________________________________________________________




[AutoIt] Grundlagen II
Vorwort :

Was werde wir erarbeiten?

Nun ich dachte wir wagen uns jetzt mal an die "Variablen" und die Befehle mit denen man die Maus bewegt bzw. autoIt sagt was sie anzuklicken hat, etc.
______________________________________________________________

Was sind "Variablen" ?

Eine Variable ist nichts anderes als ein "Platzhalter".
Es gibt Scripte da wird ein bestimmter wert ?ber 1000 mal verwendet.
Wieso soll man sich die finger wund tippen beim schreiben des source-codes, wenn man es genauso gut abk?rzen kann?

Eine Variable wird in AutoIt durch das $(dollar)-symbol kenntlich gemacht.
So wei? AutoIt das es sich um eine Variable handelt und nicht etwa um einen Befehl, etc.
______________________________________________________________

Gibt es für Variablen ein Grundgerüst?

Das Grundger?st ist ganz simpel :

$variable = Wert/"Wert"

Ganz wichtig ist hierbei folgendes :
AutoIt unterschiedet zwischen gro? und kleinschreibung bei Variablen !

So sind (z.B.) :

$Variable = 10
$VaRiabLe = 10
$vAriabLe = 10

nicht das gleiche !

Ihr solltet euch angew?hnen bei variablen immer klein zu schreiben.
So kommt es nicht zu problemen.
______________________________________________________________

Darf ich alles als Variable schreiben?

So ziemlich alles ist erlaubt. (solange $ davor steht)
Aber so ganz ohne ausnahmen geht es auch hier nicht.

So sind zeichen wie !"?$%&/()=? etc. unzul?ssig.
Ebenso wie ??? sowie ???

______________________________________________________________

Ihr k?nnt nat?rlich auch Text und/oder andere Variablen miteinander verbinden.

So m?sst ihr nicht st?ndig einen neuen Send() befehl setzten.
Um eine Variable mit einem String, das ist text zwischen den "xxx"-zeichen, zu verbinden ben?tigt ihr das zeichen

&

Ein richtig verbundener Text w?rde so aussehen :

Zitat
$variable = "nummer 1"

Send ("Text " & $variable)


Ergebnis => Text nummer 1
(richtig)


Wie ihr seht hab ich nur den Text in Strings ("xxx") geschrieben.
Das liegt daran das AutoIt alles was in Strings steht als "String" wertet, und nicht etwa mehr als Variable.

So ist z.B. das hier keine Text indem eine Variable benutzt wird :


Zitat
$variable = "nummer 1"

Send ("Text & $variable")


    Ergebnis => Text & $variable
    (falsch)

    Ihr seht was passiert w?re?
    AutoIt h?tte den text einfach so abgetippt wie er im String steht.
    Und nicht etwa so wie wir ihn gebraucht h?tten.

______________________________________________________________

Aber jetzt mal ein kleines Beispiel davon wie man Variablen anwenden k?nnte.

Beispiel (ohne Variablen) :

Stellt euch vor ihr wollt eine Massenmail schreiben.

Zitat
Send ("Hallo Kevin,")
Send ("{Enter}")
Send ("Ich veranstalte am xx.xx.xx um xx:xx einen Ausflug.")
Send ("{Enter}")
Send ("Ich w?rde mich freuen wenn du kommen w?rdest.")
Send ("{Enter}")
Send ("Achja Kevin, es k?nnte sehr sp?t werden. Sag deinen Eltern bitte bescheid.")
Send ("gez.: MaZze")


So ihr wollt aber die selber nachicht an 3 weitere freunde schicken.
Alles wieder neu abtippen?
Wieso nicht einfach per Variable?

Beispiel (mit Variablen) :

Zitat
$freund1 = "Kevin"
$freund2 = "Andreas"
$freund3 = "Julia"
$freund4 = "Anne"

Send ("Hallo " & $freund1 )
Send ("{Enter}")
Send ("Ich veranstalte am xx.xx.xx um xx:xx einen Ausflug.")
Send ("{Enter}")
Send ("Ich w?rde mich freuen wenn du kommen w?rdest.")
Send ("{Enter}")
Send ("Achja " & $freund1 & ", es k?nnte sehr sp?t werden. Sag deinen Eltern bitte bescheid.")
Send ("gez.: MaZze")


In diesem Fall m?ssen wir "nur" den namen der Variable austauschen und schon ist unsere "Massenmail" fertig.


    Jetzt wisst ihr was Variablen sind.
    Das solltet ihr unbedingt lernen!
    Den ohne Variablen kommt man bei AutoIt einfach nicht aus.
______________________________________________________________

Wie bewege ich die Maus?

Und wie bestimme ich wo geklickt bzw. gedr?ckt gehalten wird?


Fangen wir doch mit einer simplen bewegung an

Das Grundger?st daf?r ist :

MouseMove (x, y)


Was soll x und y bedeuten?

Das sind einfache Bildschirm-Koordinaten.
Je nachdem was ihr f?r eine Bildschirmaufl?sung habt ist der punkt, der geklickt wird immer ein anderer.
______________________________________________________________

Aber wie krieg ich raus wo dieser punkt (x, y) ist ?

Dazu hat AutoIt ein ganz tolles Tool. (in der Standard-Installation enthalten)
Dieses Tool nennt sich "AutoIt Window Info" (Alle Programme / AutoIt v3 / AutoIt Window Info)

?ffnen wir es dochmal und schauen es uns inruhe an.

Wie ihr seht sind dort sehr viele informationen aufgelistet.
Doch f?r uns interessant sind eigentlich nur :

>>>>Window<<<<
"Title"


und

>>>>Mouse<<<<
"Position"

Mit "Title" haben wir einfach den Fenstertitel.
Man sollte bedenken das nicht jedes Fenster oben so nen "balken" hat wo der Titel drinsteht.

Und das was wirklich interessant f?r uns ist, ist der "Mouse"-Bereich.
Hier sehen wir schon den Eintrag "Position".
Dieser gibt uns die x/y werte an auf der unser mauszeiger gerade steht.

Aber da diese Option noch sehr viele andere informationen hat, die wir zumindest jetzt noch nicht brauchen, w?rde ich vorschlagen das wir eine andere karteikarte w?hlen.

Wie w?re es mit "Mouse"?


    Hier haben wir nur die x/y koordinaten.
    (und noch ein paar andere dinge die uns erstmal egal sein k?nnen)
______________________________________________________________

Wir wollen das unsere Maus von Links nach Rechts geht.

Also suchen wir uns erstmal einen startpunkt.
Dazu benutzten wir unser sch?nes neues Tool. (AutoIt Window Info)

Ich arbeite mit der Bildschirmaufl?sung : 1280x1024
Falls ihr die selbe habt k?nnt ihr gerne meine "beispiel-koordinaten" nehmen.

Andernfalls w?re es ratsam eure eigenen zu nehmen.

Mein startpunkt ist (x=100 y=500) und mein endpunkt ist (x=1000 y=500).

Also schreiben wir :


Zitat
MouseMove (100, 500)
Sleep (1000)
MouseMove (1000, 500)
Exit



    Wie ihr sehen k?nnt wird die maus durch diesen befehl nur bewegt.
______________________________________________________________

Was aber wenn wir etwas bestimmtes anklicken wollen?

Nun da brauchen wir wieder x/y koordinaten.
Und wie bekommen wir die?

Genau! Durch unser "AutoIt Window Info"-Tool.

Das Grundger?st ist :

MouseClick ("Maustaste", x, y)


Also schreiben wir z.B. :

Zitat
MouseClick ("left", 700, 500)


Durch diesen befehl w?rde AutoIt auf dem Punkt (x=700 y=500) die Linke-maustaste dr?cken.
______________________________________________________________

Kann ich auch eine Taste gedr?ckt halten? (text markieren, etc.)

Selbstverst?ndlich ist auch ein solcher befehl vorhanden.

Das Grundger?st ist :

MouseDown ("Maustaste")
bzw.
MouseUp ("Maustaste")


So k?nnen wir eine taste gedr?ckt halten (MouseDown) bzw. sie wieder loslassen (MouseUp).
Aber weil es in diesem befehl keine x, y koordinaten gibt, w?re es ratsam die Maus erst mit hilfe von

MouseMove an die richtige stelle zu bringen.

So k?nnte beispielsweise ein ablauf aussehen :

Zitat
MouseMove (100, 500)
MouseDown ("left")
MouseMove (800, 500)
MouseUp ("left")
Exit


Was ist passiert?

Zuerst ist unser Mauszeiger an die Punkte x=100 y=500 gebracht worden. (MouseMove)
Danach wurde die linke maustaste gedr?ckt gehalten. (MouseDown)
Anschlie?end wurde die maus wieder bewegt. (MouseMove)
(wie es beim markieren bzw. drag-and-drop ?blich ist)
Zu guter letzt wurde die maustaste wieder losgelassen. (MouseUp)

______________________________________________________________


Jetzt solltet ihr wissen was es mit Variablen aufsich hat und wie man die Maus an bestimmte punkte bringt, bzw. sie dazu bringt etwas anzuklicken.


Beispiel zu der benutztung von Variablen :
Ihr sollt nur sehen wie wichtig es sp?ter ist, dass man wei? wie man Variablen einsetzt.

Zitat
#include <File.au3>
#include <String.au3>

$file = "daten.txt"

$id = InputBox ("Daten", "ID")
$pw = InputBox ("Daten", "Passwort", "", "*")

$crypt_id = _StringEncrypt (1, $id, "MaZze")
$crypt_pw = _StringEncrypt (1, $pw, "MaZze")

FileWrite ($file, "")
_FileWriteToLine ($file, 1, $crypt_id, 1)
_FileWriteToLine ($file, 2, $crypt_pw, 1)

$id2 = FileReadLine ($file, 1)
$pw2 = FileReadLine ($file, 2)

$crypt_id2 = _StringEncrypt (0, $id2, "MaZze")
$crypt_pw2 = _StringEncrypt (0, $pw2, "MaZze")

MsgBox (0, "ID+Passwort", "Deine ID ist "&$crypt_id2&@CRLF&"Dein PW ist "&$crypt_pw2)
Tooltip ("Und nun schau dir mal den Inhalt der datei Daten.txt an.... ^^", 300, 300)
Sleep (6000)
Exit


Das werden wir alles noch lernen !
Aber zum jetztigen zeitpunkt m?sst ihr es euch wohl einfach komentarlos ansehen.


« Letzte Änderung: Mai 07, 2010, 09:02:59 von Xunai »

Bot-Area

Autoit Anfänger Tutorial
« am: Mai 20, 2009, 09:36:05 »

Xunai

  • Administrator
  • Hero Member
  • *****
  • Danke
  • -vergeben: 9
  • -erhalten: 70
  • Beiträge: 745
    • Profil anzeigen
Re: Autoit Anf?nger Tutorial
« Antwort #1 am: Mai 20, 2009, 09:36:23 »
[AutoIt] Grundlagen III


Vorwort :

Was werden wir erarbeiten?

Ich denke es ist an der zeit das wir nun auch mal lernen wie man bestimmte "werte" in einer (sogenannten) MsgBox ausgibt.
Und die sache mit dem PixelGetColor werden wir in diesem Teil, des tutorials, auch bearbeiten.
Aber ich glaub wir sind auch reif genug f?r die Befehle InputBox und Tooltip.

Wie immer hoffe ich das es euch spa? macht mein Tutorial zu lesen und dabei AutoIt st?ck f?r st?ck zu lernen :)

______________________________________________________________

MsgBox - Was soll das sein?


Mit dem Befehl "MsgBox" kann man auf ganz einfache weise bestimmte werte, sei es nun Text und/oder der wert einer Variable/etc., ausgeben.

Das Grundger?st ist ganz einfach :

MsgBox (Flag, "Titel", "Dein Text")

Die option "Flag" ist daf?r da um weitere kn?pfe/etc. in die MsgBox einzubauen.
Aber f?rs erste nehmen wir den Standardwert "0".

Da ich doch sehr hoffe das ihr die Tutorials I+II gelesen habt muss ich ja wohl nichts mehr zu "Titel" und "Dein Text" sagen.

Beispiel :

Zitat
MsgBox (0, "Unsere erste MsgBox!", "Hier k?nnte ihre Werbung stehen :P")

______________________________________________________________

PixelGetColor - Wozu soll das gut sein?

Nun dieser Befehl ist dazu da um auszugeben welche farbe ein bestimmter Pixel auf dem bildschirm hat.
Die Pixel-x befehle werden gerne f?r Aimbots/oder generel f?r PixelBots verwendet.
Um diesen befehl effektiv zu benutzten w?re es ratsam zu wissen wie man "Variablen" verwendet.

Das Grundger?st ist auch recht simpel:

$variable = PixelGetColor(x, y)

Wie anfangs schon angesprochen w?re es ratsam hier kenntnisse mit "Variablen" zu haben.

Beispiel :

Den die Pixelfarbe bzw. der wert des Pixels wird in einer Variable gespeichert.
So w?rde (z.B.) eine "richtige" verwendung dieses Befehls aussehen :

Zitat
$farbe = PixelGetColor (300, 300)
MsgBox (0, "Der Wert unseres Pixels", $farbe)



So was haben wir gemacht?
Zuerst haben wir uns einen Punkt ausgesucht ?ber den wir mehr wissen wollen.
PixelGetColor (300, 300)
Anschlie?end haben wir das "ergebniss" unseres PixelGetColor-Befehls in eine Variable gepackt.
$farbe
Und um diesen Wert jetzt zu "sehen", haben wir das ganze noch so aufgeschrieben das MsgBox es uns einfach anzeigt.
MsgBox (0, "Der Wert unseres Pixels", $farbe)

Mitlerweise solltet ihr wissen wie man an die "x, y"-Werte kommt.
Daher werde ich es nicht nochmal erkl?ren. (siehe "Grundlagen II")

______________________________________________________________

So was haben wir gemacht?
Zuerst haben wir uns einen Punkt ausgesucht ?ber den wir mehr wissen wollen.
PixelGetColor (300, 300)
Anschlie?end haben wir das "ergebniss" unseres PixelGetColor-Befehls in eine Variable gepackt.
$farbe
Und um diesen Wert jetzt zu "sehen", haben wir das ganze noch so aufgeschrieben das MsgBox es uns einfach anzeigt.
MsgBox (0, "Der Wert unseres Pixels", $farbe)

Mitlerweise solltet ihr wissen wie man an die "x, y"-Werte kommt.
Daher werde ich es nicht nochmal erkl?ren. (siehe "Grundlagen II")

______________________________________________________________

InputBox - Das "Frage-Antwort"-Spiel

Es kommt auch der moment indem man vor hat Programme zu schreiben die sich an den Benutzter anpassen und nicht immer die gleichen werte haben.
Zum Beispiel wenn es darum geht einen Auto-Login zu programmieren.
Jeder hat seine eigenen Daten. (Benutzternamen + Passwort)
Also w?re es "unm?glich" einen "universal" Auto-login zu schreiben.

Und genau f?r solche f?lle ist der Befehl "InputBox" da.

Das Grundger?st sieht folgenderma?en aus :

$variable = InputBox ("Titel", "Angezeigter Text")

Die option "Titel" werde ich nicht erkl?ren.
Aber "Angezeigter Text" sollte neu f?r euch sein.
Hier k?nnt ihr hinschreiben was als "Fragestellung" in der InputBox erscheinen soll.


Und wie ihr im Grundger?st seht wird auch dieser "Wert" in einer Variable gespeichert.
Irgentwohin muss die "eingegebene information" ja hin.

Beispiel :

So k?nnte (z.B.) ein "richtig" geschriebener Code aussehen :

Zitat
$input = InputBox ("Unsere erste InputBox", "Wie hei?t du?")
Run ("notepad.exe")
WinWait ("Unbenannt")
Send ("Dein Name ist " & $input)
Exit



Was ist passiert?
Zuerst wurden wir nach unserem Namen gefragt.
InputBox ("Unsere erste InputBox", "Wie hei?t du?")
Anschlie?end wurde unser eingegebener Wert in einer Variable gespeichert.
$input
Danach wurde Notepad gestartet und unser wert wurde "hingeschrieben".
(diesen vorgang kennt ihr bereits)

______________________________________________________________

ToolTip - Klein aber fein!

Wie ihr sicher schon gemerkt habt kann man durch den Befehl "MsgBox" zwar wunderbar werte/etc. ausgeben.
Aber leider (?!) erscheint immer wieder ein fenster das man "best?tigen" muss bevor der script weiterl?uft. (man muss immer "ok" dr?cken)

Also wie sollen wir "kleine bemerkungen" machen ohne gleich 100 mal auf "ok" zu klicken?

Die L?sung ist so klein wie simpel !

Wir brauchen den befehl "ToolTip".
Damit k?nnen wir problemlos kleine bemerkungen auf den bildschirm setzten ohne den nutzter alzusehr zu nerven.

Das Grundger?st sieht so aus :

ToolTip ("Euer Text", x, y)

Nun? Muss ich dazu noch was sagen?
Ich glaube kaum.

Beispiel :



So k?nnte (z.B.) ein "richtig" geschriebener Code aussehen :



Was ist passiert?
Zuerst haben wir unseren Tooltip befehl benutzt um den text "Nur ein kleiner Hinweis..." auszugeben.
Und das am punkt x:300 y:300.
ToolTip ("Nur ein kleiner Hinweis...", 300, 300)
Anschlie?end haben wir den befehl "Sleep" verwendet um diesen ToolTip, bzw. unser programm 10 sekunden lang offen zu halten.
Sleep (10000)

______________________________________________________________



[AutoIt] Grundlagen IV

Vorwort :

Was werden wir lernen?
Ich dachte mir es ist nun an der Zeit das wir uns mit den Schleifen befassen.
Au?erdem ist es immer ganz n?tzlich sein Programm mit "selbst gew?hlten" tastenkombinationen zu "steuern".
Daher werden wir uns auch mit "HotKeySet" (Func/EndFunc) besch?ftigen.

If / EndIf
Do / Until
While / Wend
Func / EndFunc (HotKeySet)

Wie immer w?nsche ich euch viel Spa? beim lesen, lernen und ausprobieren.

______________________________________________________________

if / Else

Es kommt sehr oft vor das man programme schreiben muss die sich an den benutzter anpassen.
Daher w?re es immer ratsam solche Programme mithilfe von "If / EndIf" zu schreiben.
Jenachdem wie sich der benutzter verh?lt (entscheidet) reagiert das programm anders.

Das Grundger?st ist auch hier sehr einfach :

If X = Y Then
"Mach dies und das"
ElseIf X = Z Then
"Mach dies und das"
Else
"Mach dies und das"
EndIf

Ein "If"-Befehl muss immer mit einem "EndIf"-Befehl beendet werden.
Wie ihr seht funktioniert das ganze nach dem "Wenn" --> "Dann" - Prinzip :

Wenn X = Y Dann
"Mach dies und das"
Oder X = Z Dann
"Mach dies und das"
Sonst
"Mach dies und das"
EndIf

Den ElseIf Teil k?nt ihr so oft verwenden wie ihr lust habt.
Schlie?lich kann es ja sehr viele m?gliche werte geben.
Aber ihr m?sst immer darauf achten das auch ein Wert angegeben ist!
(ElseIf X = Z Then)

Beispiel :

Zitat
$input = InputBox ("Ja oder Nein?", "Hast du 'Grundlagen I-III' bereits gelesen?"&@CRLF&"(bitte antworte nur mit 'Ja' oder 'Nein'!")

If $input = "ja" Then
MsgBox (0, "Ja", "Dann lern ma weiter...")
ElseIf $input = "nein" Then
MsgBox (0, "Nein", "Solltest du das nicht besser nachholen?...")
Else
MsgBox (0, "", "Was verstehst du an 'Antworte nur mit Ja oder Nein' eigentlich nicht?!...")
EndIf



______________________________________________________________

Do / Until - Schleife

Es kommt oft vor das man auf bestimmte ereignisse "warten" muss.
Da man aber nie sicher sagen kann wann dieses "warten" sein ende hat, greift man gerne mal auf die "Do / Until"-Schleife zur?ck.

Wie der Name schon sagt "Wird etwas solange ausgef?hrt, bis ein bestimmter wert erreicht ist".
Ganz nett w?re das z.B. bei Pixel-x Befehlen.
So k?nnte man beispielsweise einen bestimmen Pixel/ein Pixelfeld solange ?berwachen bis sich die Farbe ?ndert und dann erst mit dem rest des Scripts weitermachen.

Das Grundger?st :

Do
"Mach dies und das"
Until X = Y


Wie ihr seht gibt es auch hier einen "Anfang" und ein "Ende". ("Do" --> "Until")
Ganz wichtig ist hierbei folgendes :

Der Until- Befehl muss immer eine bedingung enthalten!
(Until X = Y)

Beispiel :

Zitat
$zahl = 0

Do
$zahl = $zahl + 1
ToolTip ("Unsere Zahl ist : "&$zahl)
sleep (1000)
Until $zahl = 10

MsgBox (0, "", "Unsere bedingung ist erf?llt!")


Wie ihr seht wiederholt sich die schleife solange BIS unsere Variable ($zahl) den wert "10" hat.
Erst dann l?uft der Script weiter und es erscheint die MsgBox.

______________________________________________________________

While / Wend - Schleife

Die "While"-Schleife ist ?hnlich wie die "Do"-Schleife.
Der einzige unterschied ist der, dass hier nicht solange etwas "gemacht" wird bis eine bedingung erf?llt ist.
Sondern es wird NUR etwas "gemacht" solange eine bestimmte bedingung erf?llt ist.

Das Grundger?st :

While X = Y
"Mach dies und das"
Wend


Das ganze w?rde inetwa so aussehen :
(vereinfacht)

W?hrend X = Y
"Mach dies und das"
Wend

Ganz nett kann man das (z.B.) mit PixelGetColor benutzten.

Beispiel :


Zitat
$pixel = 0xFFFFFF

While $pixel = 0xFFFFFF
$pixel = PixelGetColor (300, 300)
Sleep (100)
WEnd

MsgBox (0, "Pixel", "Unser Pixel hat seine Farbe ver?ndert!")


Hier wird alle 100 millisekunden gecheckt ob unser Pixel (300, 300) die farbe 0xFFFFFF hat. (wei?)
Sobald sich die farbe ?ndert stoppt die schleife und per MsgBox wird uns mitgeteilt das sich die Frabe ver?ndert hat.

Aber "while"-Schleifen nutzt man auch oft als "endlos"-schleife.
Als "endlos"-schleife bezeichnet man eine bestimmte abfolge von befehlen die sich endlos wiederholen.

Das grundger?st hierf?r ist auch ganz einfach :

While 1
"Mach dies und das"
Wend


Besonders wichtig ist hier die 1
Dadurch wird aus der "while"-schleife eine "endlos"-schleife.

Beispiel :
Zitat

$zahl = "0"

While 1
   ToolTip ("Zahl = "&$zahl)
   sleep (100)
   $zahl = $zahl + 1
WEnd


______________________________________________________________

HotKeySet - Func / EndFunc

Nat?rlich kommt irgentwann mal der punkt an dem man nicht nur einfach diese stumpfen "auf-los-gehts-los" - Programme schreiben will, sondern alles per "HotKeys" steuern m?chte.
HotKeys sind vom benutzter (bzw. programmierer) speziel ausgew?hle Tasten/Tastenkombinationen mit denen man sein Programm steuern kann.

Doch eine sache darf man hier niemals vergessen :

Die Ausgew?hlten "HotKeys" sind f?r "andere programme" gesperrt, solange euer Programm l?uft.

Durch HotKeySet ist es m?glich ganze abl?ufe mit nur einem einzigen tastenklick(kombi) zu aktivieren/benutzten.

Das Grundger?st :

Zitat
HotKeySet ("Tasten/kombi", "funktion")
;.....
;.....Ihr k?nnt so viele HotKeySet-befehle verwenden wie ihr wollt....
;.....

Func funktion()
"Mach dies und das"
EndFunc
;.....
;.....Aber nat?rlich muss zu jedem HotKeySet auch eine funktion geh?ren!.....
;.....

While 1
SLeep (100)
Wend


Ganz besonders interessant ist f?r uns der erste bereich im HotKeySet-Befehl.
"Tasten/kombi"
Hier m?ssen wir n?mlich hinschreiben mit welcher Taste, bzw. welcher Tastenkombi unsere "Funktion" gestartet werden soll.

Ich f?r meinen Teil bevorzuge die Strg+Alt-Kombis, aber das kann jeder f?r sich selbst entscheiden.
Ganz wichtig hierbei ist welche tasten/kombis ihr verwenden wollt.

Bei "einfachen tasten" k?nnt ihr sie einfach in den "String" schreiben. (abc....123....)
Aber bei "spezielen tasten" m?sst ihr die tasten in {x} (geschweifte klammern) schreiben ! (F1-F12, Enter, Tab, Delete, ....)

Alt und Strg sind nur im Kombi-Pack erh?ltlich ;P
Um sie zu benutzten, schreibt sie einfach vor euere "taste(n)" (z.B. "^!d") --> (Strg+Alt+D)

Bei ganz "besonderen" w?nschen k?nnt ihr auch einen mix verwenden... (z.B. "^!{F1}") --> (Strg+Alt+F1)

Nun kommen wir zu der stelle mit der Funktion.
Wie ihr eure Funktion nennt, ist euch ?berlassen.
Ganz wichtig aber ist : "Nur normale buchstaben und zahlen d?rfen verwendet werden!" (keine sonderzeichen #+*-+???, etc...)

Anschlie?end tragt ihr eure befehle in die Funktion ein.

Eine sache d?rft ihr aber nie vergessen :

Am ende jedes scripts, der "HotKeySet"-befehle enth?lt, muss eine Endloschleife gesetzt werden.

Am besten hierf?r eignet sich der Befehl "SLeep (100)", da er "nichts" an eurem script macht, den benutzter nicht st?rt und daf?r sorgt das unser Programm/Script nicht einfach beendet wird.

Nat?rlich k?nnt ihr auch befehle in diese Schleife einsetzten... aber das wichtigste ist, das sie Endlos weiterl?uft !

Beispiel :

Zitat
HotKeySet ("^{F1}", "start")

Func start()
   Run ("Notepad.exe")
   WinWaitActive ("Unbenannt")
   Send ("HotKeySet")
EndFunc

while 1
   sleep (100)
WEnd


______________________________________________________________

Ich hoffe dieses Tutorial hat euch gefallen.
Viel Spa? beim lernen

lg MaZze


______________________________________________________________



Um es nochmals zu sagen die Credits von diesem Tutorial gehn an MaZze von CPG da es von ihm geschrieben wurde :)




Folgende Mitglieder haben sich bei ihnen bedankt für diesen Beitrag:
« Letzte Änderung: Mai 20, 2009, 10:25:50 von Xunai »

sieutruc

  • Newbie
  • *
  • Danke
  • -vergeben: 0
  • -erhalten: 0
  • Beiträge: 1
    • Profil anzeigen
    • E-Mail
Re: Autoit Anf?nger Tutorial
« Antwort #2 am: Juli 21, 2009, 02:52:31 »
Can you give another English version or some tutorial in English.!

Xunai

  • Administrator
  • Hero Member
  • *****
  • Danke
  • -vergeben: 9
  • -erhalten: 70
  • Beiträge: 745
    • Profil anzeigen
Re: Autoit Anf?nger Tutorial
« Antwort #3 am: Juli 28, 2009, 12:55:24 »
I think there won't be an english translation in further time, but when someone other want to do this, why not.

Bot-Area

Re: Autoit Anf?nger Tutorial
« Antwort #3 am: Juli 28, 2009, 12:55:24 »

Papa-L.-Joker

  • Newbie
  • *
  • Danke
  • -vergeben: 0
  • -erhalten: 0
  • Beiträge: 2
    • Profil anzeigen
    • E-Mail
Re: Autoit Anf?nger Tutorial
« Antwort #4 am: Oktober 24, 2009, 07:17:39 »
einfach super vielen vielen vielen dank!!! :happy: :good: :happy: :good: :happy: :good:

L?xx?r

  • Newbie
  • *
  • Danke
  • -vergeben: 0
  • -erhalten: 0
  • Beiträge: 4
    • Profil anzeigen
Re: Autoit Anf?nger Tutorial
« Antwort #5 am: November 19, 2009, 02:23:18 »
This Tutorial is 1 o 1 the same like this one in the You are not allowed to view links.Register or Login
www.autoitscript.com
on english or You are not allowed to view links.Register or Login
www.autoit.de
on german

A helpful site is also You are not allowed to view links.Register or Login
www.autoitbot.de
(on german) it?s just make for guys they boting Games and there are many many scrippt source and Tutorials

but in this tutorial are not things like the IE.au3 or FF.au3 to make greate Browsergames, i will write in a few minutes my First Tutorial here to coding an bot for a browsergame, i write in German , for the englishcoder >> i will not translate evrything, use an engish translator for understanding me, but simple questions i will answerd on english.


I must write some of my bot?s new becouse not all is working at the moment, ( my best bot?s are older and browsergames change her games evry time )

so lets begin

for info , my icq number is 220-297-394, if you have questions you can write me, maybe i can helb, couse i coding bot?s in auto IT for 1 year and i beleve i?not the badest ^^

Bot_for_Fun

  • Sr. Member
  • ****
  • Danke
  • -vergeben: 9
  • -erhalten: 28
  • Beiträge: 484
    • ICQ Messenger - 426234793
    • Profil anzeigen
    • Bot-Area.net
    • E-Mail
Re: Autoit Anf?nger Tutorial
« Antwort #6 am: April 20, 2010, 09:31:13 »
was macht man mit autoit genau ?
schreibt man damit bots oder was ? ^^



1. Bot downloaden & einstellen
2. Bot starten
3. Mf-runs
4. ???
5. Profit

Xunai

  • Administrator
  • Hero Member
  • *****
  • Danke
  • -vergeben: 9
  • -erhalten: 70
  • Beiträge: 745
    • Profil anzeigen
Re: Autoit Anf?nger Tutorial
« Antwort #7 am: Mai 07, 2010, 09:05:12 »
was macht man mit autoit genau ?
schreibt man damit bots oder was ? ^^


Unter anderem, man kann vieles mit Autoit machen.
Der riesengroße Vorteil von Autoit ist eben ,dass es extrem leicht zu lernen ist und die ersten Erfolgserlebnise hat man bereits nach 1-2h.


Bot_for_Fun

  • Sr. Member
  • ****
  • Danke
  • -vergeben: 9
  • -erhalten: 28
  • Beiträge: 484
    • ICQ Messenger - 426234793
    • Profil anzeigen
    • Bot-Area.net
    • E-Mail
Re: Autoit Anf?nger Tutorial
« Antwort #8 am: Mai 13, 2010, 02:16:59 »
was macht man mit autoit genau ?
schreibt man damit bots oder was ? ^^


Unter anderem, man kann vieles mit Autoit machen.
Der riesengroße Vorteil von Autoit ist eben ,dass es extrem leicht zu lernen ist und die ersten Erfolgserlebnise hat man bereits nach 1-2h.


mit 'Erfolgserlebnise' meinnst du z.b. seinen eigenen kleinen bot der gräfin killt und 10 mal in einem run crasht ;D ?



1. Bot downloaden & einstellen
2. Bot starten
3. Mf-runs
4. ???
5. Profit

Bot_for_Fun

  • Sr. Member
  • ****
  • Danke
  • -vergeben: 9
  • -erhalten: 28
  • Beiträge: 484
    • ICQ Messenger - 426234793
    • Profil anzeigen
    • Bot-Area.net
    • E-Mail
Re: Autoit Anfänger Tutorial
« Antwort #9 am: Mai 13, 2010, 02:42:38 »
Zitat
Das Grundger?st ist ganz simpel :

$variable = Wert/"Wert"

Ganz wichtig ist hierbei folgendes :
AutoIt unterschiedet zwischen gro? und kleinschreibung bei Variablen !

So sind (z.B.) :

$Variable = 10
$VaRiabLe = 10
$vAriabLe = 10

nicht das gleiche !

Ihr solltet euch angew?hnen bei variablen immer klein zu schreiben.
So kommt es nicht zu problemen.


kann man auch mehrere Variablen in einem Script machen ?
d.h.:

  • $variable = 10
  • $variablE = 1

also könnte man in einem script dann für 1 = $variablE schreiben und für 10= $variable ?

€:

Zitat
Darf ich alles als Variable schreiben?

So ziemlich alles ist erlaubt. (solange $ davor steht)
Aber so ganz ohne ausnahmen geht es auch hier nicht.

So sind zeichen wie !"?$%&/()=? etc. unzul?ssig.
Ebenso wie ??? sowie ???


was sind die "???"
« Letzte Änderung: Mai 13, 2010, 02:45:55 von Bot_for_fun »



1. Bot downloaden & einstellen
2. Bot starten
3. Mf-runs
4. ???
5. Profit

Bot_for_Fun

  • Sr. Member
  • ****
  • Danke
  • -vergeben: 9
  • -erhalten: 28
  • Beiträge: 484
    • ICQ Messenger - 426234793
    • Profil anzeigen
    • Bot-Area.net
    • E-Mail
Re: Autoit Anfänger Tutorial
« Antwort #10 am: Mai 13, 2010, 03:27:48 »
und könntest du irgendwie noch so einen spoiler mit allen tasten (auf der tastatur)
wie die in einem AutoIt projekt geschrieben werden?
z.B.
Alt = !

und noch ein edit ...  :biggrin:

Zitat
Beispiel :



So k?nnte (z.B.) ein "richtig" geschriebener Code aussehen :
|
|
|
|


Was ist passiert?
Zuerst haben wir unseren Tooltip befehl benutzt um den text "Nur ein kleiner Hinweis..." auszugeben.
Und das am punkt x:300 y:300.
ToolTip ("Nur ein kleiner Hinweis...", 300, 300)
Anschlie?end haben wir den befehl "Sleep" verwendet um diesen ToolTip, bzw. unser programm 10 sekunden lang offen zu halten.
Sleep (10000)


fehlt da nicht etwas :D ?

:

Zitat
ToolTip ("Nur ein kleiner Hinweis...", 300, 300)
Sleep (10000)
Exit

         ich hab das mal gemacht =)
« Letzte Änderung: Mai 13, 2010, 03:58:52 von Bot_for_fun »



1. Bot downloaden & einstellen
2. Bot starten
3. Mf-runs
4. ???
5. Profit

Bot-Area

« am: »