ich habe ein updater so mit progressbar und ein label der mir sagt MB von MB
so ich habe ein 2 label und der soll mir sagen wie lang der download noch braucht
problem bevor ich
das mit dem verbliebene zeit gemacht habe ging alles
aber jetzt geht progressbar nicht und der label auch nicht aber es lädt runter
könnt ihr mir helfen was ich falsch gemacht habe ????
lg vbcji
so ich habe ein 2 label und der soll mir sagen wie lang der download noch braucht
problem bevor ich
das mit dem verbliebene zeit gemacht habe ging alles
aber jetzt geht progressbar nicht und der label auch nicht aber es lädt runter
könnt ihr mir helfen was ich falsch gemacht habe ????
VB.NET-Quellcode
- Imports System.NetImports System.Timers
- Public Class Update
- Private WithEvents httpclient As WebClient Dim Pfad As String = Nothing Dim sw As New Stopwatch Dim received As Integer Dim Totalbytes As Double Dim bytes As Double Dim downloadsekunde As Integer Dim downloadsekunden As Integer Dim averagedownload As Integer Dim restzeit As Integer
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load MsgBox("Bitte Datei in das Spielverzeichniss unter Update.exe speichern, die .exe ausführen und auf ersetzen klicken !", MsgBoxStyle.Information, "Information") Me.Hide()ShowDialog: SaveFileDialog1.ShowDialog() If SaveFileDialog1.FileName = Nothing Then GoTo ShowDialog End If Pfad = SaveFileDialog1.FileName Try Me.Show() httpclient = New WebClient Dim URL As String = "http://www.weebly.com/uploads/2/1/9/9/21997230/updater.exe" Application.DoEvents() httpclient.DownloadFileAsync(New Uri(URL), Pfad) Application.DoEvents() Catch ex As Exception MsgBox("ein Fehler ist aufgetreten:" & vbNewLine & ex.ToString, MsgBoxStyle.Critical, "Fehler") End End Try End Sub
- Private Sub httpclient_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles httpclient.DownloadFileCompleted MsgBox("Download complete", MsgBoxStyle.Information, "Information") End End Sub
- Private Sub httpclient_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Dim aTimer As New System.Timers.Timer() AddHandler aTimer.Elapsed, New ElapsedEventHandler(AddressOf OnTimedEvent) aTimer.Interval = 1000
- Me.ProgressBar1.Value = e.ProgressPercentage Dim totalbytes = Math.Round(e.TotalBytesToReceive \ 1024 \ 1024, 2) Dim bytes = Math.Round(e.BytesReceived \ 1024 \ 1024, 2) Me.Label1.Text = bytes & "MB von " & Totalbytes & "MB" aTimer.Enabled = True
- End Sub
- Private Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs) downloadsekunden += 1 Dim averagedownload = bytes / downloadsekunden Dim restzeit = (Totalbytes - bytes) / averagedownload Label2.Text = restzeit End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End End Sub
- Private Sub Update_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown If (e.Button = Windows.Forms.MouseButtons.Left) Then Me.Capture = False Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
- Else : End If End SubEnd Class
lg vbcji