Updater ohne externe EXE direkt im Hauptprogramm

    • VB.NET

    Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Samus Aran.

      Updater ohne externe EXE direkt im Hauptprogramm

      -----
      Dieser Tipp stammt von kevin89
      -----

      Fast alle erstellen entweder einen externen Updater (also ein Extra-Programm) oder eine komplizierte Batch-Datei. Mit einem VBS-Skript geht das ganze einfach:

      Quellcode

      1. WScript.sleep 800
      2. Dim fso2
      3. Set fso2 = CreateObject("Scripting.FileSystemObject")
      4. fso2.GetFile("console.exe").Delete
      5. Dim fso
      6. Set fso = CreateObject("Scripting.FileSystemObject")
      7. fso.MoveFile "update.exe", "console.exe"

      Das ganze geht dann so:

      Ihr erstellt eine VBS-Datei (geht mit dem Editor) und speichert die Datei unter "updater.vbs" im selben Ordner wie eure Exe. Beim Klick auf "Update" lasst ihr euer Programm dann folgendes ausführen:

      VB.NET-Quellcode

      1. (1. Ihr vergleicht die Versionen)
      2. (2. Falls neue Version da, ladet ihr die neue Exe unter dem Dateinamen "update.exe" herunter)
      3. (3. Erhöht die Versionsnummer)
      4. -> 4. Ihr ruft die VBS mit Process.Start auf
      5. -> 5. Beendet das Hauptprogramm sofort mit "End"

      Die VBS löscht nach genau 0,8 Sekunden die Datei "console.exe" (einfach durch euren Namen der Exe ersetzen) und benennt die Datei "update.exe" (die neue Exe) in "console.exe" (wieder den Name eures Hauptprogramms einsetzen) um.
      Besucht auch mein anderes Forum:
      Das Amateurfilm-Forum
      Ich denke, dass ich alles richtig gemacht habe:
      Die Datei auf den Server geladen, mein Programm angewiesen, sich diese Datei herunterzuladen und auszuführen.
      Der Versuch, das Skript auszuführen schlägt natürlich fehl, da in einem VB-Skript keine japanischen Zeichen erlaubt sind. ;)
      dann lass doch mit IO.File.WriteAllText
      dir eine vbs erstellen