1 Textbox (mit dem Text "DownloadURL"
1 Button (mit dem Text "Download!" / am bessten direkt unter der Textbox.)
1 Label (Mit KEINEM Text / am bessten auch DIREKT unter dem Button)
1 Progressbar (am bessten GANZ UNTEN bei der Form.)
1 SaveFileDialog.
Zuerst macht ihr einen Doppelklick auf die Form, um den Code anzuzeigen.
Direkt über Public Class Form1 kommt:
HTML Code:
Imports System.Net
Direkt unter Public Class Form1 kommt:
HTML Code:
Dim WithEvents wclient As New WebClient
So, jetzt macht ihr einen Doppelklick auf den Button, und schreibt folgendes:
HTML Code:
With SaveFileDialog1
.FileName = IO.Path.GetFileNameWithoutExtension(TextBox1.Text)
.Filter = IO.Path.GetExtension(TextBox1.Text) & "|*." & IO.Path.GetExtension(TextBox1.Text)
End With
SaveFileDialog1.ShowDialog()
wclient.DownloadFileAsync(New Uri(TextBox1.Text), SaveFileDialog1.FileName)
Die ersten 5 Zeilen müsst ihr nicht benutzen, aber es sieht eindeutisch besser aus
Zu Zeile 6: Zeigt den Dialog vom SaveFileDialog1.
Zu Zeile 7: Der Webclient speichert die Datei (Die URL ist TextBox1.Text & der Speicherort ist SaveFileDialog1.FileName)
So
Jetzt zu WithEvents.
Wenn ihr jetzt mal oben, wo die 2 ComboBoxen sind, auf die erste klickt, dann seht ihr dass WClient dabei ist.
Ohne "WithEvents" wäre es nicht dabei.
Jetzt klickt ihr in der 1. ComboBox auf WClient, und in der 2. Combobox auf DownloadProgressChanged.
Dann schreibt ihr:
HTML Code:
Dim splittext1 As String = e.BytesReceived / 1000
Dim splittext2 As String = e.TotalBytesToReceive / 1000
splittext1 = splittext1.Split(Chr(46))(0)
splittext2 = splittext2.Split(Chr(46))(0)
splittext1 = splittext1.Split(Chr(44))(0)
splittext2 = splittext2.Split(Chr(44))(0)
ProgressBar1.Value = e.ProgressPercentage
Label1.Text = splittext1 & " kB's / " & splittext2 & " kB's"
If e.BytesReceived = e.TotalBytesToReceive Then
MessageBox.Show("Datei wurde gespeichert!")
End If
Die 2. Zeile macht das gleiche, nur mit den Totalen Bytes.
Die 3. Zeile splitet die Variable splittext1 auf Punkte.
Die 4. Zeile splitet die Variable splittext2 auf Punkte.
Die 5. Zeile splitet die Variable splittext1 auf Kommas.
Die 6. Zeile SPlitet die Variable splittext2 auf Kommas.
Das ist alles, damit keine Kommazahlen entstehen, wenn man durch 1000 rechnet.
Die 7. Zeile bedeutet, dass die Value von der Progressbar, die Value vom Download ist.
Die 8. Zeile zeigt an, wieviele KiloBytes gesendet wurden (mit unserer "getunten" Variable) und wieviele KiloBytes man insgesamt downloaden muss(auch "getunte" Variable)
Die 9. Zeile fragt, ob BytesReceived, das gleiche wie TotalBytes ist, also der Download fertig ist.
Die 10. Zeile zeigt eine MessageBox, dass der Download fertig ist.
Die 11. Zeile schließt die Frage von der 9. Zeile ab.
Debuggen & Fertig
Credits: LaVendetta (Hier im Forum Lavendetta16)






