[How To] Autoupdater mit Dateidownload

    • VB.NET

    Es gibt 32 Antworten in diesem Thema. Der letzte Beitrag () ist von Kulki-See.

      Was habe ich falsch gemacht?
      Mein Code:

      VB.NET-Quellcode

      1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      2. Try
      3. If My.Computer.Network.Ping("www.google.com") = True Then
      4. Dim y As String
      5. Dim Web As New WebClient
      6. Dim Update As String = Web.DownloadString("http://www.abc/Version.txt")
      7. If My.Computer.FileSystem.FileExists(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\testprogramm.exe") Then
      8. My.Computer.FileSystem.DeleteFile(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\testprogramm.exe")
      9. End If
      10. If Update.Contains(Application.ProductVersion) Then
      11. Else
      12. y = CStr(MsgBox("Neue Version. Jetzt herunterladen ?", CType(4 + 48, MsgBoxStyle), "Neue Version"))
      13. If y = "6" Then
      14. My.Computer.Network.DownloadFile("http://www.abc/testprogramm.exe", System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\testprogramm.exe")
      15. Process.Start(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\testprogramm.exe")
      16. Me.Close()
      17. End If
      18. End If
      19. Else
      20. End If
      21. Catch
      22. MsgBox("Beim Versuch, auf die neuste Version zu prüfen das Programm zu aktualisieren ist ein Fehler aufgetreten.", CType(0 + 48, MsgBoxStyle), "Fehler")
      23. End Try
      24. End Sub


      Zum Verzeichnis: Ich möchte, dass die Datei direkt dort wieder ist, wo die alte war.
      ("http://www.abc/Version.txt")
      ?!
      "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

      Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
      Hallo, erstmal danke für das gute Tutorial

      Folgenden Code habe ich.
      Wenn ich gefragt werde, ob ich aktualisieren möchte und ja drücke, passiert allerdings nichts. Ich kann keine neue Datei auf dem Desktop finden.

      VB.NET-Quellcode

      1. Try
      2. If My.Computer.Network.Ping("www.google.com") = True Then
      3. Dim y As String
      4. Dim Web As New Net.WebClient
      5. Dim Update As String = Web.DownloadString("http://usr32.eagle-cms.net/Version.txt")
      6. If Update.Contains(Application.ProductVersion) Then
      7. Else
      8. y = MsgBox("Neue Version. Jetzt herunterladen ?", 4 + 48, "Neue Version")
      9. If y = "6" Then
      10. My.Computer.Network.DownloadFile("http://usr32.eagle-cms.net/GastroHelp.exe", System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop))
      11. Process.Start(System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "GastroHelp.exe")
      12. Me.Close()
      13. End If
      14. End If
      15. Else
      16. MsgBox("Beim Versuch, auf die neuste Version zu prüfen das Programm zu aktualisieren ist ein Fehler aufgetreten.", 0 + 48, "Fehler")
      17. End If
      18. Catch
      19. End Try


      Mit freundlichen Grüßen
      Padarom
      Hallo Paradom,

      entschuldige bitte die späte Antwort.
      Hast du mal versucht einen genauen Pfad anzugeben,
      wie etwa

      "C:\Users\USER\Desktop" ?

      Falls nicht, versuche das bitte. Beachte dabei, dass ein Pfad, der
      Leerzeichen enthält, tatsächlich in Anführungszeichen stehen muss!

      LG
      Nino
      "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

      Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
      Du musst beim Download auch noch den namen mit einen & anhängen

      VB.NET-Quellcode

      1. My.Computer.Network.DownloadFile("http://usr32.eagle-cms.net/GastroHelp.exe", System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "Name der Anwendung.exe"
      Danke für die Antworten, habe leider übersehen hier nochmal nachzuschauen, da ich die Tage mit anderen Applikationen beschäftigt war. Mit Anhängen des Dateipfades funktioniert es, danke - Habe ich wohl vergessen.
      Hey, also will dass so machen, das bei auf Button Klick die Datei auf Updates überprüft wird.
      Code:

      VB.NET-Quellcode

      1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      2. Try
      3. If My.Computer.Network.Ping("www.google.com") = True Then
      4. Else
      5. Dim y As String
      6. Dim Web As New Net.WebClient
      7. Dim Update As String = Web.DownloadString("http://xxx.de/Version.txt")
      8. If Update.Contains(Application.ProductVersion) Then
      9. Else
      10. y = MsgBox("Neue Version. Jetzt herunterladen ?", 4 + 48, "Neue Version")
      11. If y = "6" Then
      12. My.Computer.Network.DownloadFile("http:/xxx.de/setup.exe", System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "C:\Users\USER\Desktop")
      13. Process.Start(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "C:\Users\USER\Desktop")
      14. Me.Close()
      15. End If
      16. End If
      17. End If
      18. Catch
      19. MsgBox("Beim Versuch, auf die neuste Version zu prüfen das Programm zu aktualisieren ist ein Fehler aufgetreten.", 0 + 48, "Fehler")
      20. End Try
      21. End Sub
      22. End Class


      Jedoch passiert bei Button Klick nichts, kein Fenster gar nichts...
      If My.Computer.Network.Ping("www.google.com") = True Then
      Else
      ..
      EndIf


      Ich würde mal sagen n else zu viel...
      du prüfst ja die verbindung, diese liefert ein true zurück => keine reaktion...

      so wäre es verm richtig:

      VB.NET-Quellcode

      1. If My.Computer.Network.Ping("www.google.com") = True Then
      2. ..
      3. EndIf


      eben die ELSE raus...
      Ok, danke dafür, hatte den Post nicht bermerkt.
      Auf jedenfall geht die Abfrage jetzt und es wird angezeigt es sei eine neue Version verfügbar, aber Wenn ich bei Jetzt Downloaden drücke, Kommt die Error Meldung.
      Als Pzp habe ich C:\Users\Tobi\Desktop angegeben und auch in Klammern gesetzt..
      Und Webserver läuft auch perfekt.
      Sorry wenn ich das jetzt so hoch pushe :<
      Habs nun hinbekommen und poste mal meinen Code damit sich den andere kopieren können. Achtung, Copy+Paste!

      VB.NET-Quellcode

      1. Try
      2. If My.Computer.Network.Ping("www.google.de") = True Then
      3. Dim y As String
      4. Dim Web As New WebClient
      5. Dim Update As String = Web.DownloadString("http://www.deinlinkzurfile.de/Version.txt")
      6. If My.Computer.FileSystem.FileExists(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "NAME VON DEINEM PROGRAMM") Then
      7. My.Computer.FileSystem.DeleteFile(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "NAME VON DEINEM PROGRAMM")
      8. End If
      9. If Update.Contains(Application.ProductVersion) Then
      10. Else
      11. y = MsgBox("Es ist ein neues Update verfügbar, soll das neue Update heruntergeladen und gespeichert werden?", 4 + 48, "Update verfügbar")
      12. If y = "6" Then
      13. My.Computer.Network.DownloadFile("http://www.deinlinkzurfile.de/filename.exe", System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "NAME VON DEINEM PROGRAMM")
      14. Process.Start(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "NAME VON DEINEM PROGRAMM")
      15. Me.Close()
      16. End If
      17. End If
      18. Else
      19. End If
      20. Catch
      21. MsgBox("Der Versuch auf eine neue Version zu prüfen schlug fehl!", 0 + 48, "Fehler")
      22. End Try


      Diesen Code einfach zwischen Private Sub (Button oder sonstiges) und End Sub packen und schon sollte es funktionieren.

      Edit by der_Kurt:
      Die Farbe Rot ist der Moderation vorbehalten. Bitte nicht verwenden

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

      Ich machs anders :D
      sehet und staunet :D

      VB.NET-Quellcode

      1. Try
      2. If My.Computer.Network.Ping("http://www.deinlinkzurfile.de/Version3.7.exe") = True Then
      3. My.Computer.Network.DownloadFile("http://www.deinlinkzurfile.de/Version3.7.exe", "new-version.exe")
      4. Process.Start(System.Environment.GetFolderPath(application.startuppath) & "update.exe")
      5. Me.Close()
      6. End If
      7. Catch ex as Exception
      8. abkack(ex) ' ja, diese Funktion existiert bei diesem Programm wirklich :D
      9. End Try