Updater Progressbar Problem

  • VB.NET

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

    Updater Progressbar Problem

    Guten Abend.

    Habe folgendes Problem bei meinem Updater:

    - Form1 wird geladen:
    - Es wird nach neuer Version geschaut
    - Wenn neue Version verfügbar ist soll er sie Downloaden (Da ist das Problem)
    - Dabei soll die Progressbar Anziegen wie viel schon gedownloaded ist
    - Nach dem Download das Update Installieren


    So das Problem ist das nach dem Laden der Form eine Msg Box kommt ich Ok klicke und dann alles Verschwunden ist :(

    VB.NET-Quellcode

    1. Private WithEvents WebClient1 As Net.WebClient Dim pgversion As String = "0001"
    2. Private Sub frmUpdaterClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles frmUpdaterClose.Click Me.Close() End Sub
    3. Private Sub frmUpdaterMin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles frmUpdateMin.Click Me.WindowState = FormWindowState.Minimized End Sub
    4. Private Sub frmUpdater_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\My Games\Game\version.txt") Then ' Prüfen ob Datei vorhanden ist My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\My Games\Game\version.txt") ' Wenn ja löschen End If
    5. My.Computer.Network.DownloadFile("http://gameupdate.funpic.de/version.txt", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\My Games\Game\version.txt") ' Datei Neu Downloaden - Hier den Link zu der version.txt
    6. Dim Stream As New IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\My Games\Game\version.txt") ' Auslesen Dim z1 As String = Stream.ReadLine Stream.Close()
    7. If z1 > pgversion Then Try WebClient1 = New WebClient Dim URL As String = "http://download5.farming-simulator.com/FarmingSimulator2013/FarmingSimulator2013Patch1.3DE.exe" Application.DoEvents() WebClient1.DownloadFileAsync(New Uri(URL), Environment.SpecialFolder.MyDocuments & "\My Games\Game\Updater.exe") Application.DoEvents() Catch ex As Exception MsgBox("Es ist folgender Fehler aufgetreten:" & vbNewLine & ex.ToString, MsgBoxStyle.Critical, "Es ist ein Fehler aufgetreten!") End End Try End If
    8. End Sub
    9. Private Sub WebClient1_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles WebClient1.DownloadProgressChanged Me.ProgressBar1.Value = e.ProgressPercentage Dim totalbytes As Double = e.TotalBytesToReceive / 1024 / 1024 Dim bytes As Double = e.BytesReceived / 1024 / 1024 Me.Label1.Text = bytes & " MB von " & totalbytes & " MB" End Sub
    10. Private Sub WebClient1_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles WebClient1.DownloadFileCompleted MsgBox("Der aktuelle Patch wurde im angegebenen Verzeichnis gespeichert und wird nun Installiert!", MsgBoxStyle.Information, "Erfolg!") End End Sub
    11. End Class


    Edit: Sorry Irgendwie geht der Code nicht Sauberer hier einzufügen.

    Ich bin mir sicher das ich nur irgendwo nen Leichtsinnsfehler gemacht habe.

    Mfg.
    Nevs08

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private WithEvents _wC As New Net.WebClient
    3. Private Sub _wC_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles _wC.DownloadFileCompleted
    4. MessageBox.Show("Download completed!")
    5. End Sub
    6. Private Sub _wC_DownloadProgressChanged(sender As Object, e As Net.DownloadProgressChangedEventArgs) Handles _wC.DownloadProgressChanged
    7. Me.ProgressBar1.Value = e.ProgressPercentage
    8. End Sub
    9. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    10. _wC.DownloadFileAsync(New Uri("http://download.thinkbroadband.com/10MB.zip"), IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "test.zip"))
    11. End Sub
    12. End Class


    Hier ein Beispiel.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o