Dies ist mein großer Guide über AutoIt, vieles wird von mir geschrieben, und manches habe ich im Internet gefunden, was aber hier nicht fehlen darf. Der Guide wird immer aktualiesiert und ist nicht von Anfang an Perfekt! Fangen wir mal mit einen kleinen Teil an.
Es gibt zwei Möglichkeiten um eine Datei zu öffnen, jedoch ist der Befehl Run nur für .exe Dateien. Der Befehl für alle anderen Dateien ist ShelleExecute.
Beispiel: Ich möchte mit AutoIt die NotePad.exe öffnen. Dazu schreibe ich in meinen Script:
PHP Code:
Run("Notepad.exe")
Will ich aber zum Beispiel eine .txt öffnen oder eine .ini Datei benutze ich ShellExecute:
PHP Code:
Shellexecute(@DesktopDir & "/meinetxt.txt")
Wieso habe ich keinen Pfad angegeben?
Erklärung zu Beispiel 1: Weil Notepad ein Standard bei Windows ist und so direkt aufgerufen werden kann. Dazu brauch man kein Pfad.
Erklärung zu Beispiel 2: Dort habe ich einen Pfad angeben: @Desktopdir heißt einfach: C:\Users\Meik\Desktop. Durch das & signalisieren wir einfach das es noch weiter geht. Jetzt kommt nur noch "/meinetxt.txt". Man schreibt noch "/" weil es bei @DesktopDir nicht dabei ist, aber ohne das die Datei nicht startet.
Um eine Nachricht zu senden, benutzt man den Befehl Send. Jedoch sendet dieser sofort, heißt wenn kein Fenster offen ist, wobei man nicht schreiben kann, ist das so, als wenn ihr auf der Tastatur tippt, ohne Fenster. Deshalb benutzen wir noch einen Befehl namens Sleep. Dieser Befehl ist dafür da, um einen Timer zu setzen, wann das Programm wieder starten soll.
Beispiel:
PHP Code:
Send("Hallo, das ist ein Test")
Jetzt kann aber auch erst Notepad starten und dann eine Nachricht in Notepad hinterlassen also müssen wir einfach zu nächst mit den Befehl Run Notepad öffnen:
PHP Code:
Run("Notepad.exe")
Send("Hallo, das ist ein Test")
Doch wie jeder weißt brauchen Programme meistens bis sie geladen sind. Deshalb kann man einfach den Befehl Sleep benutzen oder man benutzt WinWaitActive. Aber mehr zu dem Befehl später. Zunächst benutzen wir mal Sleep. 1 Sekunde ist 1000. Also ist 10000 10 Sekunden!
Beispiel:
PHP Code:
Run("Notepad.exe")
Sleep(3000)
Send("Hallo, das ist ein Test")
Um eine Messangebox zu erstellen benutzt man den Befehl Msgbox. Danach setzt man die Form, heißt: Welche Buttons, es gibt welche mit Okay, aber welche mit abbrechen und etc... Diese werden mit Zahlen von 0 bis keine Ahnung sehr sehr sehr viel. Im AutoIt.de Forum gab es sogar eine 5stellige Zahl. Aber für uns reicht erstmal die 0. Jetzt setzt man nur noch Title und Text: Fertig!
Beispiel:
Um eine Datei zu erstellen, benutzt man den Befehl FileWrite. Man setzt einfach den Pfad um am Ende schreibt man halt welche Datei man erstellen will: Beispiel: Ich will ein .txt Dokument auf dem Desktop:
Um eine Datei zu kopieren, benutzt man den Befehl FileCopy. Man setzt erst den Pfad wo das Programm liegt und dann wo es hinkopiert werden soll.
Beispiel:
Um einen Ordner zu erstellen, benutzt man den Befehl DirCreate. Man setzt den Pfad + Ordnernamen. Beispiel: Ich möchte in den Ordner wo das Script ist, ein Ordner namens Lol haben.
PHP Code:
DirCreate(@ScriptDir & "Lol")
ScriptDir ist das selbe wie DesktopDir nur das, das jetzt nicht auf den Desktop ist sondern in den ScriptOrdner.
lol ist ein Ordner auf den Desktop und Create ist ein Ordner auf den Desktop. Jetzt wird einfach der Ordner lol in den Ordner Create kopiert, heißt jetzt gibt es zwei Ordner von lol, auf den Desktop und in den Ordner Create.
Ein gut erstelltes Programm braucht natürlich auch Updates, und hier wird erklärt wie.
Einmal mit Appserv und einmal mit FileZilla. Der Unterschied zu FileZilla ist, dass FileZilla ein Webspaceserver ist und immer online ist. Appserv jedoch ist so wie PC zu PC, d. h. nur wenn der PC online ist und der andere User mit dem Computer (mit Hamachi) in Verbindung stehen müsst, kann der User das Update herunterladen.
Inhaltsverzeichnis:
1. Downloads
2. Installationen
2.1 Appserv
2.2 FileZilla
3. Der Script-Code
4. Updater via localhost (Appserv)
5. Updater via FTP-Client (FileZilla)
6. Update im neuen Ordner patchen
7. Schlusswort
Zunächst wird die update.txt im Ordner gelöscht, indem sich das Programm befindet, wenn sich diese existiert. Danach downloadet das Programm mit dem Befehl InetGet die neue Update.txt. In dieser .txt steht die Versionnummer, zum Beispiel 1.0.0.2. Der Befehl, dass die Update.txt geöffnet wird, wird mit der Variable $file gekürzt. Ebenfalls auch der Befehl, das diese beiden verglichen werden. Jetzt wird überprüft ob die Versionnummer, mit der Versionnummer der Settings.ini übereinstimmt, wenn diese übereinstimmen oder nicht übereinstimmen, kommt im nächsten Scriptteil. Falls die Settings.ini nicht existiert wird ein Update erfolgen, weil dort keine Versionnummer angegeben ist und 0 = 1.0.0.2 ist nicht identisch.
PHP Code:
If $ver_server = $ver_pc or $ver_server = "" Then
FileClose($file)
FileDelete(@TempDir & "\update.txt")
msgbox(0, "Keine neue Version","Es gibt kein Update!")
Dort steht einfach, wenn die identisch sind, dann soll die Update.txt geschlossen werden, danach gelöscht werden und ein MessangeBox soll erscheinen mit dem Titel Keine neue Version und dem etxt Es gibt kein Update.
PHP Code:
$msgbox = MsgBox(36, "Update!", "Es ist ein neues Update verfügbar! Downloaden?")
If $msgbox = 6 Then
Tooltip("Update wird runtergeladen... bitte warten....")
InetGet("siehe 4. und 5.",@scriptDir&"\" & "DATEINAME", 1, 0)
IniWrite("settings.ini", "Info", "Version", $ver_server)
FileClose($file)
FileDelete(@ScriptDir & "update.txt")
Tooltip("")
msgbox(0,"Update", "Das Programm wurde heruntergeladen! Danke fürs downloaden!")
EndIf
EndIF
Wenn diese aber nicht übereinstimmen dann soll eine Messangebox uns darauf hinweisen, das ein Update verfügbar ist. Man wird gefragt, ob man Downloaden möchte, klickt man nein, passiert nichts, klickt man ja dann wird die neue Datei runtergeladen. und die Settings.ini mit der neuen Versionnummer wird erstellt. Dann wird die Update.txt geschlossen und gelöscht. Jetzt erscheint nur noch eine Messangebox, dass das Programm heruntergeladen worden ist.
Und hier ist nochmal der Gesamtcode:
PHP Code:
FileDelete(@TempDir & "\update.txt")
InetGet("Siehe 4. und 5.",@TempDir & "\update.txt", 1, 0)
$file = FileOpen(@TempDir & "\update.txt", 0)
$ver_server = FileReadLine($file, 1)
$ver_pc = IniRead("Settings.ini", "Info", "Version","")
If $ver_server = $ver_pc or $ver_server = "" Then
FileClose($file)
FileDelete(@TempDir & "\update.txt")
msgbox(0, "Keine neue Version","Es gibt kein Update!")
Else
$msgbox = MsgBox(36, "Update!", "Es ist ein neues Update verfügbar! Es wird die neuere Version gedownloadet." & @CRLF & "Sie können die alte Version löschen! Downloaden?")
If $msgbox = 6 Then
Tooltip("Update wird runtergeladen... bitte warten....")
InetGet("siehe 4. und 5.",@scriptDir&"\" & "DATEINAME", 1, 0)
IniWrite("settings.ini", "Info", "Version", $ver_server)
FileClose($file)
FileDelete(@ScriptDir & "update.txt")
Tooltip("")
msgbox(0,"Update", "Das Programm wurde heruntergeladen! Danke fürs downloaden!")
Zunächst einmal suchen wir unseren Ordner Appserv in C:\ und öffnen den Ordner. Öffnen dann den Ordner www. Dort sieht man 3 Ordner und 2 .php Dateien. Man kann alles löschen außer den Ordner Appserv und cgi-bin. Erstellt nun in den Ordner www ein .txt Dokument mit den Namen Update und schreibt dort die versionnummer an: 1.0.0.2 Mehr nicht!
Nun kopiert euer Programm in den www Ordner. Falls ihr dann eine neue Version eures Programms habt, ändert ihr in der Update.txt die Nummer in 1.0.0.3 und so weiter. Und ersetzt das eurer Programm mit dem neuen.
Jetzt nurnoch folgende Zeilen verändern:
PHP Code:
InetGet("Was hier stehen wird, steht unten",@TempDir & "\update.txt", 1, 0)
Ihr braucht einen Webspaceserver, dazu könnt ihr euch bei kilu.de anmelden, es ist völlig kostenlos. Jedoch solltet ihr keine richige Adresse und etc angeben. Die Emailadresse muss richtig sein, weil dort das Passwort gesendet wird.
Wenn ihr euch eingeloggt habt befolgt die 4. Schritte:
Jetzt startet FileZilla und gibt euere Daten dort ein, Port könnt ihr freilassen:
Wenn ihr verbunden seid, klickt auf den www Ordner und zieht Update.txt und euer Programm einfach dort rein. Jetzt muss man nurnoch die Befehle InetGet ändern:
PHP Code:
InetGet("Was hier stehen wird, steht unten",@TempDir & "\update.txt", 1, 0)
Das wars, falls ihr Fragen habt, stellt diese im Thread. Credits gehen anKillerzwerg829 für den Script-Code für die Updatefunktion. Sonst ist alles von mir!
Will mich jetzt hier nicht zu weit aus dem fenster lehnen aber das update über einen Webspace ist geleecht von AutoItBot woher ich das weiß? Ich hatte vor einer weile den selben code benutzt
Credits gehen an mich und Killerzwerg829, ich habe den Script-Code von ihm ein bisschen verändert.
webspaceserver + appserv hab ich selber gemacht!
achja und:
Quote:
Angebot Link
You Tube Abo`s/Bewertungen/Video Klicks
*Hier*
Werbung in meiner Signatur
*Hier*
Warrock Kill Service
*Hier*
Warrock Dinar Farm Service
*Hier*
Serials
*Hier*
Ref-Registration Service
*Hier*
Ref-Link Service
*Hier*
Combat Arms Kill Service
*Hier*
Combat Arms EXP Service[Capture the Flag]
*Hier*
Combat Arms EXP Service
*Hier*
Browsergame Bot
*Hier*
So wie ist das wenn ich die Exe (geh jetzt mal von nem FlyFF Serverstarter aus) in den Ordner lege wo auch der Resource Ordner usw. drin ist und ich hab verknüpfungen in den Ordner gemacht. wie kann ich diese dan Starten?
So wie ist das wenn ich die Exe (geh jetzt mal von nem FlyFF Serverstarter aus) in den Ordner lege wo auch der Resource Ordner usw. drin ist und ich hab verknüpfungen in den Ordner gemacht. wie kann ich diese dan Starten?
HÄ? Falsche section ?
Aber wenn du ein autoit script machen wills das die server startet benutz den befehl run() und wennn du die verknüpfumgen startem wills shellexecute()
Ja wegen Falsche Section ich will es mit AutoIt machen hab es vergessen dazuzu schreiben :P
So jetzt hab ich es geschaft die Programme zu starten doch sie blinken nur kurz auf und bekommen nen Fehler das die AccounServer.ini nicht geöffnet werden kann. Normal funktionieren die Server. Hier mal der Srcipt
Ja wegen Falsche Section ich will es mit AutoIt machen hab es vergessen dazuzu schreiben :P
So jetzt hab ich es geschaft die Programme zu starten doch sie blinken nur kurz auf und bekommen nen Fehler das die AccounServer.ini nicht geöffnet werden kann. Normal funktionieren die Server. Hier mal der Srcipt
Hab jetzt doch anders gemacht XD
viel mir gerade noch ein:
das kann funktioniert nicht, weil autoit die *inis brauch von den dateien und neuzd.dll und etc xD machs lieber mit verknöüpfungen xD und lass diese dann per autoit starten.
[FRAGE] WEGEN UPDATEFUNKTION [FRAGE] 01/05/2011 - AutoIt - 2 Replies Hallo.. elitepvper`s !
Ich hab da so`n Programm gemacht - bei dem ich unbedingt eine Updatefunktion will!
Ich hab mir schon ein paar Tutorials durchgelesen aber irgendwie versteh ich das nicht!
Ich hoffe irgendwer könnte mich weiterhelfen!
Wäre echt sehr nett!
Kriegt ein dickes fettes THX von mir!
:D
Fragen für Updatefunktion 04/21/2009 - GW Bots - 7 Replies Gibt es eine Möglichkeit das der Bot sich ohne druck auf den Updateknopf aktualisiert?
Kann man die Werte aus einer Update.ini holen die nicht auf dem PC ist?
Wie führt man ein Update aus? :o
Das sind die aktuellen Fragen die mich beschäftigen.
Ich bitte um Hilfe!