[How to] Updatefunktion mit AutoIt

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [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-Quellcode

      1. FileDelete(@TempDir & "\update.txt")
      2. InetGet("siehe 4. und 5.",@TempDir & "\update.txt", 1, 0)
      3. $file = FileOpen(@TempDir & "\update.txt", 0)
      4. $ver_server = FileReadLine($file, 1)
      5. $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-Quellcode

      1. If $ver_server = $ver_pc or $ver_server = "" Then
      2. FileClose($file)
      3. FileDelete(@TempDir & "\update.txt")
      4. 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-Quellcode

      1. $msgbox = MsgBox(36, "Update!", "Es ist ein neues Update verfügbar! Downloaden?")
      2. If $msgbox = 6 Then
      3. Tooltip("Update wird runtergeladen... bitte warten....")
      4. InetGet("siehe 4. und 5.",@scriptDir&"\" & "DATEINAME", 1, 0)
      5. IniWrite("settings.ini", "Info", "Version", $ver_server)
      6. FileClose($file)
      7. FileDelete(@ScriptDir & "update.txt")
      8. Tooltip("")
      9. msgbox(0,"Update", "Das Programm wurde heruntergeladen! Danke fürs downloaden!")
      10. EndIf
      11. EndIF
      Alles anzeigen
      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-Quellcode

      1. FileDelete(@TempDir & "\update.txt")
      2. InetGet("Siehe 4. und 5.",@TempDir & "\update.txt", 1, 0)
      3. $file = FileOpen(@TempDir & "\update.txt", 0)
      4. $ver_server = FileReadLine($file, 1)
      5. $ver_pc = IniRead("Settings.ini", "Info", "Version","")
      6. If $ver_server = $ver_pc or $ver_server = "" Then
      7. FileClose($file)
      8. FileDelete(@TempDir & "\update.txt")
      9. msgbox(0, "Keine neue Version","Es gibt kein Update!")
      10. Else
      11. $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?")
      12. If $msgbox = 6 Then
      13. Tooltip("Update wird runtergeladen... bitte warten....")
      14. InetGet("siehe 4. und 5.",@scriptDir&"\" & "DATEINAME", 1, 0)
      15. IniWrite("settings.ini", "Info", "Version", $ver_server)
      16. FileClose($file)
      17. FileDelete(@ScriptDir & "update.txt")
      18. Tooltip("")
      19. msgbox(0,"Update", "Das Programm wurde heruntergeladen! Danke fürs downloaden!")
      20. EndIf
      21. EndIf
      Alles anzeigen


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

      1. InetGet("Was hier stehen wird, steht unten",@TempDir & "\update.txt", 1, 0)
      in:

      PHP-Quellcode

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

      PHP-Quellcode

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

      PHP-Quellcode

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

      1. 127.0.0.1
      zu

      PHP-Quellcode

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

      1. InetGet("Was hier stehen wird, steht unten",@TempDir & "\update.txt", 1, 0)
      in:

      PHP-Quellcode

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

      PHP-Quellcode

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

      PHP-Quellcode

      1. InetGet("KILUADRESSE/Programmname.exe",@scriptDir&"\" & "programmname.exe", 1, 0)
      Hier noch mal ein Beispiel, wie es aussehen könnte:


      PHP-Quellcode

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

      PHP-Quellcode

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

      1. If $msgbox = 6 Then
      2. Tooltip("Update wird runtergeladen... bitte warten....")
      3. InetGet("http://127.0.0.1/updatefunk.exe",@scriptDir& "\" & "updatefunk.exe", 1, 0)
      4. IniWrite("settings.ini", "Info", "Version", $ver_server)
      5. FileClose($file)
      6. FileDelete(@ScriptDir & "update.txt")
      7. Tooltip("")
      8. 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-Quellcode

      1. DirCreate(@ScriptDir & "neues update")
      Jetzt müssen wir noch noch den Patchpfad bei InetGet ändern:

      PHP-Quellcode

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


    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • 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
    • ichbinniemand;228072 schrieb:

      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
    • thefreakbpx3;227486 schrieb:

      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.

      thefreakbpx3;227486 schrieb:

      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.