Mit Hilfe der System.Net.WebClient Klasse lässt sich eine Datei aus dem Internet sehr einfach asynchros downloaden und dabei auch noch der aktuelle Fortschritt anzeigen. Erstellen Sie ein neues Windows-Forms Projekt, platzieren auf die Form ein ProgressBar-Control (ProgressBar1), sowie ein Label (lblProgress) und einen Button (Button1). Imports System.Net Public Class Form1 ' WebClient für Datei-Download Private WithEvents httpClient As WebClient ' Datei-Download starten Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Fortschrittsanzeige zurücksetzen lblProgress.Text = "0 KB" ProgressBar1.Value = 0 ProgressBar1.Maximum = 100 ' Neue Instanz der WebClient-Klasse erstellen httpClient = New WebClient ' URL der Datei (hier die vollständige URL eintragen) Dim sURL As String = "http://www..." ' Ziel-Datei (lokal) Dim sLocalFile As String = "d:\temp\myFile.exe" Button1.Enabled = False Try ' Download asynchros starten, damit wir den Fortschritt ' anzeigen können httpClient.DownloadFileAsync(New Uri(sURL), sLocalFile) lblProgress.Visible = True ProgressBar1.Visible = True Catch ex As Exception MsgBox("Fehler!" & vbCrLf & ex.Message, MsgBoxStyle.Exclamation) Button1.Enabled = True End Try End Sub ' Download beendet Private Sub httpClient_DownloadFileCompleted(ByVal sender As Object, _ ByVal e As System.ComponentModel.AsyncCompletedEventArgs) _ Handles httpClient.DownloadFileCompleted MsgBox("Download erfolgreich durchgeführt", MsgBoxStyle.Information) ProgressBar1.Visible = False lblProgress.Visible = False Button1.Enabled = True End Sub ' Fortschrittsanzeige Private Sub httpClient_DownloadProgressChanged(ByVal sender As Object, _ ByVal e As System.Net.DownloadProgressChangedEventArgs) _ Handles httpClient.DownloadProgressChanged With ProgressBar1 ' prozentuale Anzeige des Fortschritts in der ProgressBar .Value = e.ProgressPercentage ' KB-Fortschrittanzeige im Label Dim TotalBytes As Long = e.TotalBytesToReceive / 1024 Dim Bytes As Long = e.BytesReceived / 1024 If TotalBytes < 1 Then TotalBytes = 1 If Bytes < 1 Then Bytes = 1 lblProgress.Text = Bytes.ToString & " KB von " & TotalBytes.ToString & " KB" End With End Sub End Class Dieser Tipp wurde bereits 16.293 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |