[How to] Updatefunktion mit AutoIt

  • Hallo Leute!

    In dieser "How to" wird gezeigt, wie ihr ganz einfach eine UpdateFunktion mit AutoIt erstellen könnt.
    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

    Installationen:

    Appserv:

    Spoiler anzeigen


    Folgende Einstellungen übernehmen:
    InstallationsOrdner = C:\Appserv
    Apache HTTP Server = Häckchen
    MySQL Database = Häckchen
    PHP Hypertext Preprocessor = Häckchen
    phpMyAdmin = Häckchen
    Server Name = root
    Email Adresse = irgendeine
    Passwort = individuelles Passwort

    Und am Ende bei Start Apache und Start MySQL auch Häckchen machen!

    FileZilla:

    Spoiler anzeigen

    Ganz normal installieren, es gibt keine wichtigen Einstellungen.

    Der Script-Code:

    Es werden immer Schritt für Schritt Teile des Scriptes erklärt und am Ende nocheinmal das Gesamte.

    Der erste Teil:

    PHP
    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","")

    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
    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.

    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:

    Updater via localhost:
    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
    InetGet("Was hier stehen wird, steht unten",@TempDir & "\update.txt", 1, 0)

    in:

    PHP
    InetGet("127.0.0.1/update.txt",@TempDir & "\update.txt", 1, 0)

    und:

    PHP
    InetGet("was hier steht wird, steht unten",@scriptDir&"\" & "DATEINAME", 1, 0)

    in:

    PHP
    InetGet("127.0.0.1/Programmname.exe",@scriptDir&"\" & "programmname.exe", 1, 0)

    Jetzt können aber nur du darauf zugreifen, den 127.0.0.1 = localhost = mein PC. Installiert Hamachi und änder

    PHP
    127.0.0.1

    zu

    PHP
    Deine Hamachi Ip z.B. 5.32.23.231

    Die User die Updaten wollen, müssen in ein von dir erstelltes Hamachi-Netzwerk und du musst online sein, damit die es downloaden können!

    Updater via FTP-Client:

    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
    InetGet("Was hier stehen wird, steht unten",@TempDir & "\update.txt", 1, 0)

    in:

    PHP
    InetGet("KILUADRESSE/update.txt",@TempDir & "\update.txt", 1, 0)

    und:

    PHP
    InetGet("was hier steht wird, steht unten",@scriptDir&"\" & "DATEINAME", 1, 0)

    in:

    PHP
    InetGet("KILUADRESSE/Programmname.exe",@scriptDir&"\" & "programmname.exe", 1, 0)

    Hier noch mal ein Beispiel, wie es aussehen könnte:


    PHP
    InetGet("quizthefreakbpx3.co.de/update.txt",@TempDir & "\update.txt", 1, 0)
    PHP
    InetGet("quizthefreakbpx3.co.de/updatefunk.exe",@scriptDir&"\" & "updatefunk.exe", 1, 0)

    Programm im neuen Ordner patchen:

    Um das Programm in einen neuen Ordner zu patchen, schauen wir uns folgende Zeilen einmal an:

    PHP
    If $msgbox = 6 Then
            Tooltip("Update wird runtergeladen... bitte warten....")
            InetGet("http://127.0.0.1/updatefunk.exe",@scriptDir& "\" & "updatefunk.exe", 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!")

    Jetzt schreiben wir einfach zwischen den Befehlen Tooltip und InetGet den Befehl DirCreate hin, so:

    PHP
    DirCreate(@ScriptDir & "neues update")

    Jetzt müssen wir noch noch den Patchpfad bei InetGet ändern:

    PHP
    InetGet("http://127.0.0.1/updatefunk.exe",@scriptDir & "neues update\updatefunk.exe", 1, 0)

    Schlusswort

    Das wars, falls ihr Fragen habt, stellt diese im Thread. Credits gehen an mich und Killerzwerg829, ich habe den Script-Code von ihm ein bisschen verändert. Damit dieser einfacher für euch ist. Im Anhang ist noch ein kleines Programm mit der Updatefunktion, näheres steht in der .txt die dabei ist.

    Die Tutorial ist ganz von mir allein geschrieben!


  • Zitat

    inmal 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.


    wie bitte? File Zilla ist ein Client, kein server

    Zitat von Steve Jobs

    Stay hungry - stay foolish.



  • Zitat von ichbinniemand;228072

    wie bitte? File Zilla ist ein Client, kein server


    es gibt ein filezilla Serverprogramm sowie ein clientprogramm, wenn es nur eins von beidem gäbe würde es keinen sinn machen

    lumien: das "tutorial" ist von jemanden geschrieben, der selbst null Ahnung von dem ganzen hat.. vlcht mach ich ja ma en updater tut oder stelle ein updater script zur verfügung, falls interesse besteht

  • was machst du auf möchtegern, halt deine fresse Dawn, nur weil ich die tutorial eher als du geschrieben hast.
    Alles funktioniert!
    bevor du was postest überleg erst mal

  • Zitat von thefreakbpx3;228647

    was machst du auf möchtegern, halt deine fresse Dawn, nur weil ich die tutorial eher als du geschrieben hast.
    Alles funktioniert!
    bevor du was postest überleg erst mal


    Und du bleibst mal bitte ruhig aufm Boden stehen und fängst nich gleich an, so zu beleidigen, sonst setzts was

  • Zitat von thefreakbpx3;227486

    In dieser "How to" wird gezeigt, wie ihr ganz einfach eine UpdateFunktion mit AutoIt erstellen könnt.
    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.

    Jo natürlich! Flyff ist nebenbei bemerkt ein Betriebssystem und Windows eine VMWare box.
    Filezilla: Ist eine Application die aus zwei Stücken besteht:
    - Client: Du kannst zu anderen FTP Server verbinden und so Dateien hoch/runterladen.
    - Server: Andere können via. FTP Client auf diesen Server verbinden und so Dateien Hoch/runterladen.

    AppServer ist eine Application die es ermöglicht Seiten darzustellen (zsm. mit Apache / PHP) wodurch andere Benutzer dann über einen Browser deine Seite ansteuern können.

    Zitat von thefreakbpx3;227486

    Folgende Einstellungen übernehmen:
    InstallationsOrdner = C:\Appserv
    Apache HTTP Server = Häckchen
    MySQL Database = Häckchen
    phpMyAdmin = Häckchen

    Jo natürlich braucht man für deinen Updater eine MySQL Database und phpMyAdmin zu installieren xDDDDDDDDD.

    Aufjedenfall danke TheNoobbpx3!

    Dank dir weis ich nun das ich eine Website erstellen die kann die leider nur im Internen Netzwerk in der sich mein Computer gerade findet erreichbar ist.

    Jetzt mal ehrlich! Wegen solchen leuten wie dir werden die leute total verblödet und nacher von iwelchen Pr0's gehänselt.

Jetzt mitmachen!

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