Avatar billede kris914g1 Nybegynder
10. juli 2013 - 20:41 Der er 6 kommentarer

hvordan kan jeg få mit program til at download 1 fil af gangen? VB.net

hej er i gang med at lave en download manager  med software som jeg selv laver i vb.net men hvis jeg har 3 downloads så downloader de samtidigt hvordan kan man få dem til at downloade 1 af gangen? når det er checkboxes. fx hvis der er 3 chekboxes og jeg vælger 2 checkboxes så for jeg 2 downloads med det valgte software som jeg har lavet hvordan hvis jeg vælger 3 checkboxes hvordan får jeg den til at download 1 af gangen?

code:

Imports System.Net



Public Class Form1

    Private WithEvents wc1 As New Net.WebClient
    Private WithEvents wc2 As New Net.WebClient
    Private WithEvents wc3 As New Net.WebClient
    Private q As New Queue

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim SFD As New SaveFileDialog
        If SFD.ShowDialog() = DialogResult.OK Then
            wc1.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/u/185853590/client/update/minecraft.jar"), SFD.FileName)
        End If

    End Sub

    Private Sub wc1_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc1.DownloadFileCompleted
        MsgBox("Done")
        ProgressBar1.Value = 0
    End Sub



    Private Sub wc1_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles wc1.DownloadProgressChanged
        ProgressBar1.Maximum = e.TotalBytesToReceive
        ProgressBar1.Value = e.BytesReceived
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim SFD As New SaveFileDialog
        If SFD.ShowDialog() = DialogResult.OK Then
            wc2.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/u/185853590/client/update/minecraft.jar"), SFD.FileName)
        End If
    End Sub

    Private Sub wc2_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc2.DownloadFileCompleted
        MsgBox("Done")
        ProgressBar1.Value = 0
    End Sub

    Private Sub wc2_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles wc2.DownloadProgressChanged
        ProgressBar1.Maximum = e.TotalBytesToReceive
        ProgressBar1.Value = e.BytesReceived
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If CheckBox1.Checked = True Then
            Dim SFD As New SaveFileDialog
            If SFD.ShowDialog() = DialogResult.OK Then
                wc1.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/u/185853590/client/update/minecraft.jar"), SFD.FileName)
            End If
        End If

        If CheckBox2.Checked = True Then
            Dim SFD As New SaveFileDialog
            If SFD.ShowDialog() = DialogResult.OK Then
                wc2.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/u/185853590/client/update/minecraft.jar"), SFD.FileName)
            End If
        End If

        If CheckBox3.Checked = True Then
            Dim SFD As New SaveFileDialog
            If SFD.ShowDialog() = DialogResult.OK Then
                wc3.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/u/185853590/client/update/minecraft.jar"), SFD.FileName)
            End If
        End If

    End Sub

    Private Sub wc3_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc3.DownloadFileCompleted
        MsgBox("Done")
        ProgressBar1.Value = 0
    End Sub

    Private Sub wc3_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles wc3.DownloadProgressChanged
        ProgressBar1.Maximum = e.TotalBytesToReceive
        ProgressBar1.Value = e.BytesReceived
    End Sub

   
End Class
Avatar billede claes57 Ekspert
10. juli 2013 - 21:28 #1
du ved, hvilken fil du henter i en checkbox, så før du tester på næste box, så lav et loop der tjekker, om filen er kommet til din disk, og bryd loop når filen er der, og fortsæt med næste checkbox.
Avatar billede kris914g1 Nybegynder
10. juli 2013 - 22:08 #2
forstår ikke helt kan du lave et eksemple med min code?
Avatar billede claes57 Ekspert
11. juli 2013 - 09:53 #3
i stykket
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If CheckBox1.Checked = True Then
            Dim SFD As New SaveFileDialog
            If SFD.ShowDialog() = DialogResult.OK Then
                wc1.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/ (...)), SFD.FileName)
' her indsættes en pause med tjek på Private Sub wc3_DownloadFileCompleted(... når den er færdig, så fortsæt alm kode - tilsvarende de næste to downloads.
            End If
        End If

jeg laver ikke ting i .net, så kan ikke komme det nærmere.
Avatar billede kris914g1 Nybegynder
11. juli 2013 - 10:02 #4
okay men kan du give et hint til hvordan jeg laver pausen
Avatar billede claes57 Ekspert
11. juli 2013 - 10:20 #5
det skulle så være noget fra
http://stackoverflow.com/questions/9095838/wait-for-batch-file-to-close-before-continuing-vb-net?rq=1
hvis man kan få den til at tjekke wc3_DownloadFileCompleted(...
Avatar billede kris914g1 Nybegynder
11. juli 2013 - 10:29 #6
forstår ikke så meget af det kan du ikke prøve at sætte det ind i min code så kan jeg bedre forstå det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester