[Visual Basic 2008] Simpler Updater

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

    • [Visual Basic 2008] Simpler Updater

      Hallo zu meinem 1. Guide,

      ich werde euch Heute zeigen, wie man einen simplen Updater in das Programm einbauen kann.
      Man könnte den Updater dann noch erweitern, aber ich will euch nur einmal das Grundgerüst vor Augen bringen.
      Der Updater wird die aktuelle Version des Programms, mit einer anderen, auf dem FTP gelagerten, vergleichen. Wenn die aktuelle Version nicht mehr mit der auf dem FTP einstimmt, wird nach einem Update gefragt.

      Wir brauchen:

      -einen FTP Server (zB von Kostenloser Webspace & Fotos | ohost.de)
      -ein FTP "verwaltungs" Programm (zB Download FileZilla from SourceForge.net)
      -eine Textdatei, in der die aktuelle Version steht
      -ein kleines bisschen Gehirn :ORLY:

      FTP Server

      Wir gehen auf Kostenloser Webspace & Fotos | ohost.de und erstellen uns dort einen Account.
      Den bestätigen wir dann und loggen uns mit unseren Daten ein.
      Nun klicken wir auf "Webhosting FTP" und aktivieren den FTP.
      Wir ändern das Passwort und schreiben es uns auf.

      Sind wir damit schonmal fertig, aber das sollte ja wohl jeder hinkriegen^^

      Der Upload der Textdatei

      Anfangs erstellen wir eine neue Textdatei auf dem Desktop.
      Nennen wir sie "Update.txt". In die "Update.txt" schreiben wir unsere aktuelle Version des Programms rein (zB 1.0)
      Dann können wir die neue Textdatei auch wieder schließen.
      Wir starten Filezilla und geben oben unsere FTP Daten ein.
      Wer sie nicht mehr weiß, kann auf http://www.ohost.de nochmal nachschauen.

      Nun sind wir eingeloggt und erstellen auch sofort ein neues Verzeichnis (Rechtsklick). Dieses nennen wir "update".
      Dann suchen wir unsere Textdatei und ziehen sie rechts ins neue Verzeichnis rein.
      Doppelklick auf das Verzeichnis und wir sehen unsere Update.txt ~
      Rechtsklick auf die Textdatei und wir nehmen das ".txt" am ende weg.
      Das wars auch schon.


      Der eigentliche Teil


      Wir erstellen eine neue Windows Forms Anwendung mit dem Namen "Updater".



      Für den Updater brauchen wir:

      -1x Label mit dem Text eurer aktuellen Version (zb. 1.0)
      Das Label sollte in den Eigenschaften auf Visible = False gestellt werden.
      :OSMILEY:

      Nun machen wir einen Doppelklick auf unsere Form, um in das Form_Load Ereignis zu kommen.



      Wir möchten, dass wenn es ein Update gibt, wir gefragt werden, ob wir die neueste Version herunterladen wollen.

      Zunächst Importieren wir über "Public Class" "System.Net":

      Quellcode

      1. Imports System.Net
      Das benötigen wir einfach, um später mehr Möglichkeiten zu haben, um mit dem Internet zu arbeiten.

      Dann brauchen wir noch einen Webclienten. Den deklarieren wir unter "Public Class":

      Quellcode

      1. Dim client As New Net.Webclient
      Mit diesem Webclient können wir jetzt Dateien downloaden/lesen etc etc
      Dann deklarieren wir noch "dateiversion".

      Quellcode

      1. Dim Dateiversion As String = client.DownloadString("Euer Link zur Textdatei")
      Damit liest er die Textdatei auf dem FTP Server und weiß welche die aktuelle Version ist.

      So, jetzt wollen wir überprüfen, ob die "dateiversion" höher ist, als die Version im Label.

      Quellcode

      1. If Dateiversion > Label1.Text Then
      Wenn die Dateiversion auf dem FTP größer ist, als die auf dem FTP, dann soll etwas passieren. In dem fall fragen, ob wir updaten wollen.

      Erstmal deklarieren wir die URL zur .exe, die wir herunterladen wollen.

      Quellcode

      1. Dim URL As String = "Euer Link zur EXE"
      Damit weiß er, dass "URL" der Link zur Datei ist.

      Wollen wir Updaten?

      Quellcode

      1. If MsgBox("Ein Update ist verfügbar, wollen sie es herunterladen?", MsgBoxStyle.YesNo, "Updater") = MsgBoxResult.Yes Then
      2. client.DownloadFileAsync(New Uri(URL), Application.StartupPath & "\Zielname.exe")
      3. End If
      Es taucht eine Msgbox auf und fragt ob wir updaten wollen. Wenn man auf "Yes" klickt, wird die Datei vom Link gedownloadet und da hingespeichert, wo das Programm gestartet wurde. Undzwar wird die .exe dann "Zielname.exe" heißen.

      client.DownloadFileAsync(New Uri(URL)
      Das bewirkt, dass er die Datei im Hintergrund downloadet.
      Undzwar von der URL, die als neuer Link (Uri) dargestellt wird.

      Und wenn die Dateiversion nicht höher ist, dann kommt eine Msgbox.

      Quellcode

      1. Else
      2. MsgBox("Keine Updates verfügbar", MsgBoxStyle.Information, "Updater")
      3. End If
      Der ganze Code sieht dann so aus:

      "Code"

      Quellcode

      1. Imports System.Net
      2. Public Class Form1
      3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      4. Dim client As New Net.WebClient
      5. On Error Resume Next
      6. Dim Dateiversion As String = client.DownloadString("Euer Link zur Textdatei")
      7. If Dateiversion > Label1.Text Then
      8. Dim URL As String = "Euer Link zur EXE"
      9. If MsgBox("Ein Update ist verfügbar, wollen sie es herunterladen?", MsgBoxStyle.YesNo, "Updater") = MsgBoxResult.Yes Then
      10. client.DownloadFileAsync(New Uri(URL), Application.StartupPath & "\Zielname.exe")
      11. End If
      12. Else
      13. MsgBox("Keine Updates verfügbar", MsgBoxStyle.Information, "Updater")
      14. End If
      15. End Sub
      16. End Class
      Alles anzeigen




      Ich hoffe ihr konntet es verstehen und wenn es Fragen etc gibt, postet sie einfach :yarr:





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

    • MsgBox("Ein Update ist verfügbar, wollen sie es herunterladen?", MsgBoxStyle.YesNo, "Updater")
      If MsgBoxResult.Yes Then
      client.DownloadFileAsync(New Uri(URL), Application.StartupPath & "\Zielname.exe")
      End If

      welche msgbox soll da erscheinen

      Quellcode

      1. MsgBox("Ein Update ist verfügbar, wollen sie es herunterladen?", MsgBoxStyle.YesNo, "Updater")
      2. If MSGBox("Update?") = MsgBoxResult.Yes Then
      3. client.DownloadFileAsync(New Uri(URL), Application.StartupPath & "\Zielname.exe")
      4. End If