Register for your free account! | Forgot your password?

Go Back   elitepvpers > Off-Topics > Tutorials
You last visited: Today at 15:50

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Autoit]Anfänger Tutorial.

Discussion on [Autoit]Anfänger Tutorial. within the Tutorials forum part of the Off-Topics category.

Closed Thread
 
Old   #1
 
Fruschel's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 122
Received Thanks: 52
[Autoit]Anfänger Tutorial.

Hallo, willkommen zu mein Tuturial für unsere Anfänger in AutoIt. Zumal will ich kurz klar machen, dass ich Understood bin. Wer sich überzeugen will, kann mir eine Mail senden im Bot Forum!

Vorwort: Ich musste die Autoit Tags durch die Code Tags ersetzen und die Bindestriche zwischen den Abteilungen einrücken / kürzen!
Außerdem ist zu wissen, dass, das Tutorial schon seine gewisse Zeit existiert, als ich es erstellt habe, habe ich noch nicht genau auf die Rechtschreibung geachet!
Hoffe aber trotzdem das es euch hilft!

Original Tutorial:

In diesem Tuturial werde ich euch verschiedene Bereiche erklären, unteranderem:




  • Die erste MsgBox.
  • Hotkeys einfügen
  • Die Variabeln und Inputboxen
  • PixelSearch mit Au3 Window Info Erklärung.
  • Die .Ini Funktionen.
  • _IE Funktionen
  • Die Arrays
  • GUI mit Hintergrundbild
  • Operatoren

Natürlich gibt es auch für jede einzelne Station auch schon ein Tuturial:



Und auch in der Wiki sollte auch mal ein bisschen nachgeschaut werden:


So dann fangen wir mal an:

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:
Code:
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:
Code:
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:
Code:
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:
Code:
; Drücke Esc um das Script zu beenden, Pause um es zu pausieren 

Global $Paused 
HotKeySet("{PAUSE}", "TogglePause") 
HotKeySet("{ESC}", "Terminate") 
HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d 

;;;; Hier ist der Hauptteil des Programms ;;;; 
While 1 
Sleep(100) 
WEnd 
;;;;;;;; 

Func TogglePause() 
$Paused = NOT $Paused 
While $Paused 
sleep(100) 
ToolTip('Script ist pausiert',0,0) 
WEnd 
ToolTip("") 
EndFunc 

Func Terminate() 
Exit 0 
EndFunc 

Func ShowMessage() 
MsgBox(4096,"","Das ist eine Nachricht.") 
EndFunc

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:
Code:
$Variabel
So, um diese Variabel jetzt ein Befehl zuzuordnen machen wir ein = [Gleichzeichen]:
Code:
$Variabel =
Die Variabel soll als InputBox erscheinen:

Code:
$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:
Code:
$Variabel = InputBox("Befragung", "Schreibe hier dein Vornamen hinein:") 
MsgBox(0, "Vorname", "Dein Vorname ist " & $Variabel)
Ferig
__________________________________________________ ______________

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:

Code:
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 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:
Code:
$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:
Code:
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:
Code:
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:
Code:
While True 
$PixelSearch = PixelSearch(117, 312, 584, 623, 0xC4FFB6) 
If IsArray($PixelSearch) = True Then 
MouseMove($PixelSearch[0], $PixelSearch[1], 1) 
EndIf 
WEnd
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
__________________________________________________ ______________

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:
Code:
IniWrite ( "filename", "section", "key", "value" ) 
IniRead ( "filename", "section", "key", "default" )
Um eine .Ini zuerstellen machen wir einfach:
Code:
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:
Code:
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
__________________________________________________ ______________

_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:
Code:
#include <IE.au3> 

$IE = _IECreate("http://www.*************/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:
Code:
#include <IE.au3> 

$IE = _IECreate("http://www.*************/index.php?form=UserLogin", 0, 1) 

$Form = _IEFormGetObjByName($IE, 2); 2= Layer
Jetzt machen wir noch da vor InputBoxen zum Login, der Bot hackt ja keine Profile[Wäre ja schön ]:
Code:
$Username = InputBox("Username", "Bitte geben sie ihr Profilnamen an!", "", "", 60, 140) 
$PW = InputBox("Password", "Bitte geben sie ihr Password an!", "", "*", 60, 140) 

#include <IE.au3> 

$IE = _IECreate("http://www.*************/index.php?form=UserLogin", 0, 1) 

$Form = _IEFormGetObjByName($IE, 2); 2= Layer
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.
Code:
$Username = InputBox("Username", "Bitte geben sie ihr Profilnamen an!", "", "", 60, 140) 
$PW = InputBox("Password", "Bitte geben sie ihr Password an!", "", "*", 60, 140) 

#include <IE.au3> 

$IE = _IECreate("http://www.*************/index.php?form=UserLogin", 0, 1) 

$Form = _IEFormGetObjByName($IE, 2); 2= Layer 

$Username2 = _IEFormElementGetObjByName($Form, "loginUsername")
Jetzt noch so machen das er die Daten aus der InputBox dareinschreibt, dafür den Befehl "_IEFormElementSetValue".
Code:
$Username = InputBox("Username", "Bitte geben sie ihr Profilnamen an!", "", "", 60, 140) 
$PW = InputBox("Password", "Bitte geben sie ihr Password an!", "", "*", 60, 140) 

#include <IE.au3> 

$IE = _IECreate("http://www.*************/index.php?form=UserLogin", 0, 1) 

$Form = _IEFormGetObjByName($IE, 2); 2= Layer 

$Username2 = _IEFormElementGetObjByName($Form, "loginUsername") 
_IEFormElementSetValue($Username2, $Username)
Dann kommt das raus und ihr könnt schon testen, das gleiche nochmal mit Password und fertig
Code:
$Username = InputBox("Username", "Bitte geben sie ihr Profilnamen an!", "", "", 60, 140) 
$PW = InputBox("Password", "Bitte geben sie ihr Password an!", "", "*", 60, 140) 

#include <IE.au3> 

$IE = _IECreate("http://www.*************/index.php?form=UserLogin", 0, 1) 

$Form = _IEFormGetObjByName($IE, 2); 2= Layer 

$Username2 = _IEFormElementGetObjByName($Form, "loginUsername") 
_IEFormElementSetValue($Username2, $Username) 

$Password = _IEFormElementGetObjByName($Form, "loginPassword") 
_IEFormElementSetValue($Password, $PW)
Jetzt wollen wir noch so machen das er auch auf Einloggen drückt damit wir sofort eingeloggt sind, dazu den Befehl "_IEFormSubmit".
Code:
$Username = InputBox("Username", "Bitte geben sie ihr Profilnamen an!", "", "", 60, 140) 
$PW = InputBox("Password", "Bitte geben sie ihr Password an!", "", "*", 60, 140) 

#include <IE.au3> 

$IE = _IECreate("http://www.*************/index.php?form=UserLogin", 0, 1) 

$Form = _IEFormGetObjByName($IE, 2); 2= Layer 

$Username2 = _IEFormElementGetObjByName($Form, "loginUsername") 
_IEFormElementSetValue($Username2, $Username) 

$Password = _IEFormElementGetObjByName($Form, "loginPassword") 
_IEFormElementSetValue($Password, $PW) 

_IEFormSubmit($Form)
In _IEFormSubmit einfach die Form angeben und fertig.
_IEFunktionen fertig
__________________________________________________ ______________

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:
Code:
;Alles einzeln machen: 
#include <Array.au3> 
Global $ArrayEinzeln[2] 
$ArrayEinzeln[0] = "Hallo" ; Das erste „Datenfeld" ist immer die Null 
$ArrayEinzeln[1] = "Wie gehts?" ; Das zweite „Datenfeld" ist immer die Eins 
; Das letzte „Datenfeld" ist das Array[2] - 1 nehmen = Eins 
For $Array = 0 To 1 
    MsgBox(0, "Array Tutorial", "Dies ist der Array " & $Array & ": " & $ArrayEinzeln[$Array]) 
Next 

;Alles auf einmal: 
Global $ArrayAlles[3] = ["Hallo, wie gehts?", "So geht alles", "auf einmal wenn man ein Array beschreibt"] 
For $Array = 0 To 2 ; Diesmal 0 zur 2 weil 3 - 1 gleich 2 ist 
    MsgBox(0, "Array Tutorial", "Dies ist der Array " & $Array & ": " & $ArrayAlles[$Array]) 
Next 
_ArrayDisplay($ArrayAlles, "Array Tutorial")
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:
Code:
Global $Array[3] = ["Erster Array", "Zweiter Array", "Dritter Array"] ; Wenn Array[3][4] angegeben wird, ist die [3] 
; die erste Dimension und die [4] die zweite Dimension 
For $UBound = 0 To UBound($Array) - 1 ; Die erste Dimension und auch die einzige Dimension des Arrays $Array wird 
; durchlaufen 
    MsgBox(0, "UBound Test", "Hallo, dies ist ein Text für die UBound Erklärung: " & $Array[$UBound]) 
; „Datenfelder" von $Array werden durchlaufen, Ergebniss sind die „Datenfelder" in der MsgBox 
Next 

;Andere Möglichkeit 
Global $Array2[3] = ["Erster Array", "Zweiter Array", "Dritter Array"] 
For $Other = 0 To 2 ; Diesmal wird nicht UBound benutzt sondern werden die Datenfelder 0 (1) bis 3 (2) durchlaufen 
    MsgBox(0, "UBound Test", "Hallo, dies ist ein Text für die UBound Erklärung: " & $Array2[$Other]) 
Next
Das war das wichtigste zu den Arrays
__________________________________________________ ______________

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!

Code:
#include <ButtonConstants.au3> 
#include <EditConstants.au3> 
#include <GUIConstantsEx.au3> 
#include <StaticConstants.au3> 
#include <WindowsConstants.au3> 

IniWrite(@ScriptDir & "\SpamBot_Data.ini", "Vanish", "VanishSpamBot", 1) 
Global $Ja = 6, $Nein = 7, $SW_HIDE = 0 

#Region ### START Koda GUI section ### Form=C:\Desktop, Scripte AutoIt, Bots und und und-\Koda\Forms\Spam Bot.kxf 
$Form1 = GUICreate("SpamBot bei Understood", 383, 492, 192, 124) 
$Label1 = GUICtrlCreateLabel("Spam Bot", 120, 24, 139, 38) 
GUICtrlSetFont(-1, 22, 800, 0, "Arial") 
$Label2 = GUICtrlCreateLabel("_______________________________________________________________", 0, 64, 382, 17) 
$Label3 = GUICtrlCreateLabel("Anzahl der gesamten Spam's die gesendet werden sollen:", 8, 88, 275, 17) 
$Input1 = GUICtrlCreateInput("", 8, 112, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER)) 
$Checkbox1 = GUICtrlCreateCheckbox("Pausen", 8, 176, 97, 17) 
$Label4 = GUICtrlCreateLabel("Soll nach jedem Spam eine Pause eingelegt werden?", 8, 152, 255, 17) 
$Input2 = GUICtrlCreateInput("", 104, 176, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY,$ES_NUMBER)) 
$Label5 = GUICtrlCreateLabel("_______________________________________________________________", 0, 224, 382, 17) 
$Label6 = GUICtrlCreateLabel("Der Text der gesendet werden soll", 8, 248, 166, 17) 
$Input3 = GUICtrlCreateInput("Spam", 8, 272, 369, 21) 
$Label7 = GUICtrlCreateLabel("Der Bot wird nach dem starten 5 Sekunden lang warten, sie müssen in der Zeit", 0, 312, 374, 17) 
$Label8 = GUICtrlCreateLabel("das Fenster aufrufen und auf das Feld klicken wo man was reinschreiben kann.", 0, 328, 378, 17) 
$Label9 = GUICtrlCreateLabel("_______________________________________________________________", 0, 352, 382, 17) 
$Label10 = GUICtrlCreateLabel("Testen sie den Spam Bot in diesem Feld:", 8, 376, 196, 17) 
$Input4 = GUICtrlCreateInput("", 8, 400, 369, 21) 
$Label11 = GUICtrlCreateLabel("_______________________________________________________________", 0, 432, 382, 17) 
$Label12 = GUICtrlCreateLabel("Sekunden", 232, 176, 65, 20) 
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") 
$Button1 = GUICtrlCreateButton("Start", 8, 456, 75, 25, 0) 
$Button2 = GUICtrlCreateButton("Beenden", 296, 456, 75, 25, 0) 
$Label13 = GUICtrlCreateLabel("©Copyright 2009 by Understood", 112, 464, 156, 17) 
$Checkbox2 = GUICtrlCreateCheckbox("SpamBot verstecke nach dem aktivieren.", 8, 208, 217, 17) 
$Pic1 = GUICtrlCreatePic 
GUISetState(@SW_SHOW) 
#EndRegion ### END Koda GUI section ### 

While 1 
Global $Anzahl = GUICtrlRead($Input1) 
Global $Pause = GUICtrlRead($Input2) * 1000 
Global $Text = GUICtrlRead($Input3) 
If $Pause > 0 Then 
$PauseON = 1 
Else 
$PauseON = 0 
EndIf 
$nMsg = GUIGetMsg() 
Switch $nMsg 
        Case $GUI_EVENT_CLOSE 
            MsgBox(0, "Danke", "Danke für die Benutzung des Spam Bottes!") 
Exit 
Case $Checkbox1 
GUICtrlSetStyle($Input2, BitOr($ES_AUTOHSCROLL, $ES_NUMBER)) 
Case $Button1 
_StartBot() 
Case $Button2 
            MsgBox(0, "Danke", "Danke für die Benutzung des Spam Bottes!") 
Exit 
        Case $Checkbox2 
            $IniRead = IniRead(@ScriptDir & "\SpamBot_Data.ini", "Vanish", "VanishSpamBot", "Not Found") 
            $SW_HIDE = $IniRead 
            If $SW_HIDE = 1 Then 
                IniWrite(@ScriptDir & "\SpamBot_Data.ini", "Vanish", "VanishSpamBot", 0) 
            Else 
                IniWrite(@ScriptDir & "\SpamBot_Data.ini", "Vanish", "VanishSpamBot", 1) 
            EndIf 
    EndSwitch 
WEnd 

Func _StartBot() 
    MsgBox(64, "Zeit", "Du hast 5 Sekunden auf das Feld zuklicken damit der Spam Bot schreiben kann!") 
    If $SW_HIDE = 1 Then 
        GUISetState(@SW_HIDE) 
    Else 
        GUISetState(@SW_SHOW) 
    EndIf 
Sleep(5000) 
If $PauseON = 1 Then 
For $i = 1 To $Anzahl 
Send($Text & " ", 1) 
Send("{enter}") 
Sleep($Pause) 
Next 
        $Wiederholung = MsgBox(4, "Fertig", "Das senden der Nachrichten wurde beendet! Willst du zum Spam Bot Menü zurück kehren?") 
        If $Wiederholung = $Ja Then 
            GUISetState(@SW_SHOW) 
        Else 
            MsgBox(0, "Danke", "Danke für die Benutzung des Spam Bottes!") 
            Exit 
        EndIf 
Else 
For $i = 1 To $Anzahl 
Send($Text & " ", 1) 
Send("{enter}") 
Next 
        $Wiederholung = MsgBox(4, "Fertig", "Das senden der Nachrichten wurde beendet! Willst du zum Spam Bot Menü zurück kehren?") 
        If $Wiederholung = $Ja Then 
            GUISetState(@SW_SHOW) 
        Else 
            MsgBox(0, "Danke", "Danke für die Benutzung des Spam Bottes!") 
            Exit 
        EndIf 
EndIf 
EndFunc
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:
Code:
#include <ButtonConstants.au3> 
#include <EditConstants.au3> 
#include <GUIConstantsEx.au3> 
#include <StaticConstants.au3> 
#include <WindowsConstants.au3> 

IniWrite(@ScriptDir & "\SpamBot_Data.ini", "Vanish", "VanishSpamBot", 1) 
Global $Ja = 6, $Nein = 7, $SW_HIDE = 0 

#Region ### START Koda GUI section ### Form=C:\Desktop, Scripte AutoIt, Bots und und und-\Koda\Forms\Spam Bot.kxf 
$Form1 = GUICreate("SpamBot bei Understood", 383, 492, 192, 124) 
$Label1 = GUICtrlCreateLabel("Spam Bot", 120, 24, 139, 38) 
GUICtrlSetFont(-1, 22, 800, 0, "Arial") 
$Label2 = GUICtrlCreateLabel("_______________________________________________________________", 0, 64, 382, 17) 
$Label3 = GUICtrlCreateLabel("Anzahl der gesamten Spam's die gesendet werden sollen:", 8, 88, 275, 17) 
$Input1 = GUICtrlCreateInput("", 8, 112, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER)) 
$Checkbox1 = GUICtrlCreateCheckbox("Pausen", 8, 176, 97, 17) 
$Label4 = GUICtrlCreateLabel("Soll nach jedem Spam eine Pause eingelegt werden?", 8, 152, 255, 17) 
$Input2 = GUICtrlCreateInput("", 104, 176, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY,$ES_NUMBER)) 
$Label5 = GUICtrlCreateLabel("_______________________________________________________________", 0, 224, 382, 17) 
$Label6 = GUICtrlCreateLabel("Der Text der gesendet werden soll", 8, 248, 166, 17) 
$Input3 = GUICtrlCreateInput("Spam", 8, 272, 369, 21) 
$Label7 = GUICtrlCreateLabel("Der Bot wird nach dem starten 5 Sekunden lang warten, sie müssen in der Zeit", 0, 312, 374, 17) 
$Label8 = GUICtrlCreateLabel("das Fenster aufrufen und auf das Feld klicken wo man was reinschreiben kann.", 0, 328, 378, 17) 
$Label9 = GUICtrlCreateLabel("_______________________________________________________________", 0, 352, 382, 17) 
$Label10 = GUICtrlCreateLabel("Testen sie den Spam Bot in diesem Feld:", 8, 376, 196, 17) 
$Input4 = GUICtrlCreateInput("", 8, 400, 369, 21) 
$Label11 = GUICtrlCreateLabel("_______________________________________________________________", 0, 432, 382, 17) 
$Label12 = GUICtrlCreateLabel("Sekunden", 232, 176, 65, 20) 
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") 
$Button1 = GUICtrlCreateButton("Start", 8, 456, 75, 25, 0) 
$Button2 = GUICtrlCreateButton("Beenden", 296, 456, 75, 25, 0) 
$Label13 = GUICtrlCreateLabel("©Copyright 2009 by Understood", 112, 464, 156, 17) 
$Checkbox2 = GUICtrlCreateCheckbox("SpamBot verstecke nach dem aktivieren.", 8, 208, 217, 17) 
$Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Kevin\Desktop\spam bot.jpg", 0, 0, 383, 492, BitOR($WS_GROUP,$WS_CLIPSIBLINGS)) 
GUISetState(@SW_SHOW) 
#EndRegion ### END Koda GUI section ### 

While 1 
Global $Anzahl = GUICtrlRead($Input1) 
Global $Pause = GUICtrlRead($Input2) * 1000 
Global $Text = GUICtrlRead($Input3) 
If $Pause > 0 Then 
$PauseON = 1 
Else 
$PauseON = 0 
EndIf 
$nMsg = GUIGetMsg() 
Switch $nMsg 
        Case $GUI_EVENT_CLOSE 
            MsgBox(0, "Danke", "Danke für die Benutzung des Spam Bottes!") 
Exit 
Case $Checkbox1 
GUICtrlSetStyle($Input2, BitOr($ES_AUTOHSCROLL, $ES_NUMBER)) 
Case $Button1 
_StartBot() 
Case $Button2 
            MsgBox(0, "Danke", "Danke für die Benutzung des Spam Bottes!") 
Exit 
        Case $Checkbox2 
            $IniRead = IniRead(@ScriptDir & "\SpamBot_Data.ini", "Vanish", "VanishSpamBot", "Not Found") 
            $SW_HIDE = $IniRead 
            If $SW_HIDE = 1 Then 
                IniWrite(@ScriptDir & "\SpamBot_Data.ini", "Vanish", "VanishSpamBot", 0) 
            Else 
                IniWrite(@ScriptDir & "\SpamBot_Data.ini", "Vanish", "VanishSpamBot", 1) 
            EndIf 
    EndSwitch 
WEnd 

Func _StartBot() 
    MsgBox(64, "Zeit", "Du hast 5 Sekunden auf das Feld zuklicken damit der Spam Bot schreiben kann!") 
    If $SW_HIDE = 1 Then 
        GUISetState(@SW_HIDE) 
    Else 
        GUISetState(@SW_SHOW) 
    EndIf 
Sleep(5000) 
If $PauseON = 1 Then 
For $i = 1 To $Anzahl 
Send($Text & " ", 1) 
Send("{enter}") 
Sleep($Pause) 
Next 
        $Wiederholung = MsgBox(4, "Fertig", "Das senden der Nachrichten wurde beendet! Willst du zum Spam Bot Menü zurück kehren?") 
        If $Wiederholung = $Ja Then 
            GUISetState(@SW_SHOW) 
        Else 
            MsgBox(0, "Danke", "Danke für die Benutzung des Spam Bottes!") 
            Exit 
        EndIf 
Else 
For $i = 1 To $Anzahl 
Send($Text & " ", 1) 
Send("{enter}") 
Next 
        $Wiederholung = MsgBox(4, "Fertig", "Das senden der Nachrichten wurde beendet! Willst du zum Spam Bot Menü zurück kehren?") 
        If $Wiederholung = $Ja Then 
            GUISetState(@SW_SHOW) 
        Else 
            MsgBox(0, "Danke", "Danke für die Benutzung des Spam Bottes!") 
            Exit 
        EndIf 
EndIf 
EndFunc
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!
Code:
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:
Code:
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):
Code:
$VariablenDefiniton = $VariablenDefiniton + 10
2. Weg(Zeitsparender durch den Operator):
Code:
$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:
Code:
MsgBox(0, "Addieren", 5 + 10)
So kann man es auch in verschieden Varianten machen:
Code:
MsgBox(0, "Addieren", 10 - 5)
Code:
MsgBox(0, "Addieren", 5 * 10)
Code:
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:
Code:
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:
Code:
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:
Code:
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.:
Code:
;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
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:
Code:
= = Zuweisung. Zum Bsp. $var = 5 (weist $var die Zahl 5 zu) 
+= = Addition und Zuweisung. Zum Bsp. $var += 1 (addiert 1 zu $var) 
-= = Subtraktion und Zuweisung. Zum Bsp. $var -= 1 (subtrahiert 1 von $var) 
*= = Multiplikation und Zuweisung. 
/= = Division und Zuweisung. 
&= = Verkettung und Zuweisung. Zum Bsp. $var = "one" und dann $var &= 10 ($var entspricht nun "one10") 

 
 
+ = Zwei Zahlen addieren. Zum Bsp. 10 + 20 (entspricht 30) 
- = Zwei Zahlen subtrahieren. Zum Bsp. 20 - 10 (entspricht 10) 
* = Zwei Zahlen multiplizieren. Zum Bsp. 20 * 10 (entspricht 200) 
/ = Zwei Zahlen dividieren. Zum Bsp. 20 / 10 (entspricht 2) 
& = verketten/verbinden zweier Strings. Zum Bsp. "one" & 10 (entspricht "one10") 
^ = Eine Zahl durch deren Potenz erhöhen. Zum Bsp. 2 ^ 4 (entspricht 16)  

 
 
= = Prüft, ob zwei Werte gleich sind (Groß- und Kleinschreibung wird nicht berücksichtigt, falls Strings verwendet werden). Zum Bsp.. If $var= 5 Then (true falls $var 5 entspricht) 
==  = Prüft, ob zwei Werte gleich sind (Groß- und Kleinschreibung wird berücksichtigt, falls Strings verwendet werden) 
<> = Prüft, ob zwei Werte nicht gleich sind . 
> = Prüft, ob der erste Wert größer als der zweite ist. 
>= = Prüft, ob der erste Wert größer/gleich dem zweiten ist. 
< = Prüft, ob der erste Wert kleiner als der zweite ist. 
<= = Prüft, ob der erste Wert kleiner/gleich dem zweiten ist. 

 
 
AND  = Logisches UND. z. B. If $var = 5 AND $var2 > 6 Then (True falls $var 5 entspricht und $var2 größer als 6 ist) 
OR = Logisches ODER. z. Bsp.. If $var = 5 OR $var2 > 6 Then (true falls $var gleich 5 ist oder $var2 größer als 6 ist) 
NOT = Logisches NICHT. z. B. NOT 1 (FALSE)
__________________________________________________ ______________

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
Fruschel is offline  
Thanks
18 Users
Old 11/05/2009, 21:15   #2
 
Pand0r's Avatar
 
elite*gold: 1438
Join Date: Jun 2007
Posts: 3,214
Received Thanks: 758
Gibt bereits:

1.
2.
3.
lg pand0r
Pand0r is offline  
Old 11/05/2009, 21:29   #3
 
Fruschel's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 122
Received Thanks: 52
Tut mir Leid, bin in diesem Forum nicht der aktivste. Wollte aber, dass ihr an meinem Wissen teilhaben dürft, besonders ist dieses Tutorial groß und erläutert das meiste. Aus diesem Tutorial kann man lernen, wie man eigene Pixel Bots schreibt, Login Bots oder gar auch Spam Bots.

Leider ist auch ein Teil Schuld an mir gehangen, hab mich vorher nicht nach desgleichen gesucht! Hab es einfach ohne jegliche Hintergedanken hier hinein gepostet.

Aber wenn man es so sehen kann, sind lediglich 4 Tutorials besser als 3 Tutorials.

Eine Frage wieso wird von dem Bot Forum der Link zu ?

Wenn ich mal Zeit und Lust empfinde, werde ich das Tutorial farblich gestalten, aber zunächst bleibe ich im Ruhestand in Sachen Autoit Tutorials bzw. Tutorials!

Mit freundlichen Grüßen
Fruschel alias Understood

Edit: Habe ein Blick über die Tutorials geworfen, sind gut gelungen erstmal! Wie gesagt, werde das Tutorial auch bearbeiten und farblich gestalten, weil dieses Tutorial speziell für das Bot-Forum angefertigt worden ist.
Und da unterscheidet sich manches von diesem Forum hier, hier z.B. ist die Schrift für die Abteilungsnamen ein bisschen groß geraten.
Fruschel is offline  
Thanks
2 Users
Old 11/06/2009, 02:03   #4
 
elite*gold: 15
Join Date: Feb 2009
Posts: 1,359
Received Thanks: 475
Und dann auch bitte in die richtige Sektion posten

Gibt extra eine Coders bzw AutoIT Sektion :>

Mit freundlichen Grüßen

SynT@x
SynT@x is offline  
Old 02/04/2010, 18:50   #5
 
zocker599's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 12
Received Thanks: 0
Coooles Tutorial
Für mich manchmal sehr Hilfreich ^^
kriegt n thx
zocker599 is offline  
Old 02/04/2010, 19:03   #6
 
elite*gold: LOCKED
Join Date: Apr 2009
Posts: 1,068
Received Thanks: 356
#close or move pls.
Max_-_Speed is offline  
Closed Thread


Similar Threads Similar Threads
[Tutorial]C++ für Anfänger I
09/01/2011 - Coding Tutorials - 17 Replies
Moin, ich schreib hier mal mein Tutorial über C++. Es ist für Anfänger gedacht, also für totale Neueinsteiger. Über C++: C++ wurde von Bjarne Stroustrup erfunden und entwickelt. Wenn ihr mehr über ihn wissen wollt: Bjarne Stroustrup Ich glaube mehr muss man eigentlich gar nicht wissen.
Anfänger Tutorial
08/12/2010 - AutoIt - 12 Replies
Messagebox: Zuerst einmal zeige ich euch wie ihr eine einfache Message Box wie diese hier ausgeben könnt. http://masterakio1995.lima-city.de/AutoIT_Message _Box.png Gucken wir als erstes mal in die Hilfsdatei nach was wir zu MsgBox finden. Und siehe da das gibts uns doch schon rechtviel Informationen aber wichtig ist für uns erstmal nur: flag steht in diesem fall für das aussehen der MsgBox.
[Tutorial] XHTML Anfänger Tutorial
11/04/2009 - Tutorials - 7 Replies
Hi @, hier findet ihr ein relativ umfrangreiches Tutorial zu XHTML. DIE EINLEITUNG: Um mit einer Website zu beginnen, sollte man als Erstes die Grundlagen des World Wide Webs verstehen. Als allererstes sollte man sich darüber klar werden, dass eine Homepage nicht auf dem Computer gespeichert wird, sondern auf einem Server, der mit jedem PC der Welt in Kontakt treten kann. Er ist der Anbieter. Jeder Anbieter braucht Jemanden oder etwas, der das abruft, so etwas nennt man Client und...



All times are GMT +2. The time now is 15:50.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.