Ein kurzer Code, um beim herunterladen einer Datei via WebClient die Kilobytes pro Sekunde zu berechnen. (Bekannt aus Firefox & Co.)
mfg. EiPott
VB.NET-Quellcode
- Imports System.Net ' Import auf Net
- Public Class Form1
- Dim WithEvents wc As New WebClient ' Unser WebClient
- Dim sw As New Stopwatch ' Stoppuhr
- Dim zm As Integer = 0 ' Speichert die "Zwischenmenge"
- Private Sub wc_DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
- sw.Stop() ' Stoppuhr anhalten
- Label1.Text = Math.Round((e.BytesReceived - zm) / 1024 / (sw.ElapsedMilliseconds / 1000)) & " KB/s" ' Berechnet die Menge
- ' Geladene Menge seit der letzten Änderung in Kilobytes umwandeln und durch die Anzahl Sekunden, die seit dem letzten Vorgang verstrichen sind teilen
- ProgressBar1.Value = e.ProgressPercentage ' Prozentwert auf die ProgressBar setzen
- zm = e.BytesReceived ' "Zwischenmenge" setzen
- sw.Restart() ' Stoppuhr neustarten
- End Sub
- Private Sub wc_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc.DownloadFileCompleted
- sw.Stop() ' Wenn die Datei zu Ende geladen wurde, muss die Stoppuhr wieder gestoppt werden
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- sw.Start() ' Stoppuhr starten
- wc.DownloadFileAsync(New Uri("Adresse"), "Pfad") ' Datei
- End Sub
- End Class
mfg. EiPott