In dat voorbeeld zet hij de bestandsnamen in een .txt bestand.
downloaden doet hij ze echte rniet.
er zijn een aantal manieren om te downloaden en ik zal ze even uitleggen:
importeer ook deze beide even:
[CPP]Imports System.Net
Imports System.IO[/CPP]
Vervolgens zet je onder public class form1 de volgende code:
[CPP]
Dim thread As System.Threading.Thread
Dim thread2 As System.Threading.Thread
Dim sizeinmbform As String = Nothing
Dim WithEvents WC As New WebClient
[/CPP]
onder het load event (dubbelklik op je form) plaats je hetvolgende:
[CPP] Me.CheckForIllegalCrossThreadCalls = False[/CPP]
en daarna gaan we naar de 2 manieren
Manier 1, geen MB status
Maak een private sub genaamde code aan zoals ik hier beneden doe:
[CPP]Private Sub code()
WC.DownloadFileAsync(New Uri("http://download.thinkbroadband.com/200MB.zip"), "file1.zip")
End Sub[/CPP]
(New Uri(
"http://download.thinkbroadband.com/200MB.zip"), "
file1.zip")
Rood = download locati
Groen = nieuwe locatie op pc.
Zet vervolgens ook een progressbar op je form (om te laten zien hoe ver hij is).
plak dit onder het woord
end sub van de private sub code()
[CPP]Private Sub WC_DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) Handles WC.DownloadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub[/CPP]
Vervolgens voeg je 2 knoppen toe op knop 1 zet je het woord "start" en op 2 "stop".
Vervolgens voeg je de volgende code voor de knoppen bij:
[CPP] Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
thread = New System.Threading.Thread(AddressOf code)
thread.Start()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
WC.CancelAsync()
End Sub[/CPP]
Dit was manier 1, hierbij zal een multithreaded download worden gestart (programma blijft actief) maar er zal niet weergegeven worden hoeveel MB er al binnen is en hoeveel het totaal is.
Manier 2, Met MB counter + progressbar
voor manier 2 maken we allereerst 2 labels aan (bij mij genaamd label3 en label4) die positioneren we met een / ertussen net onder de 2de progressbar:
dan maken we een private sub code2() toe, dit is de download code die gebruikt zal worden:
[CPP] Dim size2 As Integer
Dim wr2 As WebRequest
wr2 = WebRequest.Create("http://download.thinkbroadband.com/200MB.zip")
Dim webr2 As WebResponse = wr2.GetResponse
size2 = webr2.ContentLength
size2 = size2 / 1024
ProgressBar2.Maximum = size2
Label3.Text = size2 / 1024 & "MB"
Dim wc2 As New WebClient
WC.DownloadFile("http://download.thinkbroadband.com/200MB.zip", "file2.zip")
[/CPP]
Daarna voegen we een timer toe (timer1) en daarvan zetten we de interval op 1,en enabled op true. na een dubbelklik op de timer voeg je deze code toe:
[CPP] Try
Dim amount As Integer
If System.IO.File.Exists("file2.zip") Then
Dim o As New System.IO.FileInfo("file2.zip")
amount = o.Length
amount = amount / 1024
Dim amount2 As Integer = amount / 1024
Label4.Text = amount2 & "MB"
ProgressBar2.Value = amount
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try[/CPP]
daarna doen we de start knop weer programmeren met de volgende code:
[CPP] thread2 = New System.Threading.Thread(AddressOf code2)
thread2.Start()[/CPP]
Dit is dan het resultaat:
[video=youtube;i4hULNnimcw]http://www.youtube.com/watch?v=i4hULNnimcw&feature=youtu.be[/video]
Het visual basic project is te downloaden op
www.mi-soft.nl of via de directe link:
http://mi-soft.nl/?attachment_id=719