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.931 mal aufgerufen.
Anzeige
![]() ![]() ![]() (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. |
Neu! sevCommand 4.0 ![]() Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Tipp des Monats Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |