[Visual Basic]Downloader

01/30/2011 23:55 WhiteCollar#1
Hei^^
ich hab mal wieder ne farge^^
also ich würde gerne einen Downlaoder erstellen es soll ein programm sein wo z.b. ein button ein label und ne progressbar drine ist wenn man den button drückt wird eine datei gedownlaodet und die progresspar ist dan die % zahl wv schon gedownloadet wurde..

vllt könnte man paar label machen wo die downloadgeschwindigkeit und die genaue % zahl drine ist.. usw

hatt vllt jemadn eine ahnung wie des geht???



Mfg Tom
01/31/2011 07:04 Garp.#2
Das könnte hilfreich sein:
[Only registered and activated users can see links. Click Here To Register...]
01/31/2011 11:03 WhiteCollar#3
Hm ja dasn anderes prinzip ich wäre mher für des hier aba weiß nochnicht wie ich den pfad bestimmen kann.. würde des gerne per Textbox machen..
Code:
My.Computer.Network.DownloadFile("http://webspace.de/datei", "datei")
vllt hättet ihr ja ne bessere idee

mfg Tom
01/31/2011 11:05 Karnerbi#4
Die Progressbar kannst du auch ganz einfach machen, hol dir die Dateigröße, übernimm die "MaxValue" der ProgressBar mit der Dateigröße .. und ändere immer den Wert / Value der ProgressBar.
01/31/2011 11:26 WhiteCollar#5
^jo das ist ne gute idee -.... aber ich ahbe nochnichtmal gelöst wie ich ganz einfach erstmal den download starten kann und den pfad wo er des hinpack bestimmen kann...
02/14/2011 20:56 Yakiyo#6
Falls du noch dran interessiert bist:
[Only registered and activated users can see links. Click Here To Register...]
Ich hatte aber mal ein wirklich gutes Projekt, aber ich weiß nicht, wo das ist. :(
Sry

lg ~
02/15/2011 08:49 Karnerbi#7
Also in C# sieht das ganze so aus:
Code:
           System.Net.WebClient client = new System.Net.WebClient();
            string url = "http://rarlab.com/rar/wrar393d.exe";
            string filename = "winrar.exe"
            client.DownloadFile(url, filename);
            client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
            client.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
        }

        void client_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
        {
            throw new NotImplementedException();
        }

        void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
        {
            throw new NotImplementedException();
        }
DownloadFileCompleted = neues Event, dass sich aktiviert wenn der Download beendet ist.
DownloadProgressChanged = neues Event, dass sich aktiviert wenn beim Download etwas weiter geht.

Hoffe hab dir etwas geholfen, und ich dir eigentlich von Visual Basic.NET abrate und eher zu C# tendiere.

EDIT: das System.Net Zeugs ersparst du dir wenn du oben bei den "usings" das ganze einfügst, z.B.
using System.Collections.Generic;
using System.NET;
02/19/2011 03:19 WhiteCollar#8
Hm... danke kann aba net soviel damit anfangen...

ich bräuchte etwas ganz simpeles... einfach erstmal
nen Button "Download"
ne Textbox
nochnbutton"change"

Der Changebutton kommt neben die textbox... Download button ist Enable = false... Textbox auch enable = false... wenn man auf den changebutton drückt öffnet sich ein fenster wo mann dann den pfad auswählt....
dann ist button"downlaod" enable = true und wenn man auf download drückt wird estwas in den besagten Pfad gedownloadet...

Hoffe ihr wisste wie des geht^^

Mfg TerrorTom
02/19/2011 15:26 xDropDeadx#9
Hiermat wählst du das verzeichnis aus, wo deine Datei dann gespeichert werden soll
Code:
private sub Button1_Click(BLABLA)
saveFileDialog1.InitialDirectory = "c:\standart\verzeichniss\"
saveFileDialog1.RestoreDirectory = True
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*|usw...|"
So bekommst die größe der zu Donwloadenen Datei auf dem Server heraus
Code:
If openFileDialog1.ShowDialog() = DialogResult.OK Then
Dim a As System.Net.WebRequest = System.Net.WebRequest.Create(New System.Url("http://****.exe"))
Dim b As System.Net.WebResponse = a.GetResponse() 
Dim size As Long = b.ContentLength
So kannst die Datei dann downloaden
Code:
My.Computer.Network.DownloadFile ("http://****.exe", savefiledialog1.name)
else
Msgbox("Error")
endif
Das mit dem prograssbar würde ich via multithreading umsetzen...
02/19/2011 16:08 Kraizy​#10
[Only registered and activated users can see links. Click Here To Register...]
02/19/2011 16:53 WhiteCollar#11
Danke^^