Download Progressbar

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Download Progressbar

    Guten Tag, ich hätte da mal ne kurze frage.

    Ich würde gerne eine Progressbar für meinen Download machen.
    Ich habe schon gegoogelt aber nichts passendes gefunden was klappt.
    Hier mein Code:

    VB.NET-Quellcode

    1. ​Private Sub MaterialRaisedButton1_Click(sender As Object, e As EventArgs) Handles MaterialRaisedButton1.Click
    2. My.Computer.Network.DownloadFile("http://51.254.23.224/download/action/1.27.0/Action_Setup_1_27_0.exe", "C:\PriByte\Mirillis\1.27.0\Setup.exe")
    3. Process.Start("C:\PriByte\Mirillis\1.27.0\Setup.exe")
    4. End Sub


    Aber wie genau mache ich das jetzt? Würde ich es mit Async Download versuchen dann entsteht bei mir ein Fehler wegen Process.Start wobei das Programm einfach beendet wird.

    Hoffe jemand kann mir helfen :)
    Moin,

    Updater - Warum sollte man eigene Updater vermeiden?
    Du hast die selbe Routine, da Du einfach eine .exe lädst und ausführst.

    Dann nutze einen ​WebClient und vergiss den My-Namespace, der ist Ranz. Dort hast Du dann auch eine Methode ​DownloadFileAsync.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Vollzitat entfernt. ~Trade
    Also das soll kein Updater sein sondern nur ein Downloader.
    Und das mit DownloadFileAsync hab ich probiert aber es klappt nicht.
    Sobald ich den Button klicke kommt der Fehler wegen "Process.Start" also weil es im gleichen Moment wie der Download ausgeführt wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    Prilann schrieb:

    Also das soll kein Updater sein sondern nur ein Downloader.

    Das ist mir bewusst. Allerdings ist die Routine zu 100% die Selbe.

    Prilann schrieb:

    der Fehler wegen "Process.Start"

    Was geht nicht? Was für ein Fehler?

    Prilann schrieb:

    weil es im gleichen Moment wie der Download ausgeführt wird.

    Ist ja logisch, da das der Sinn von asynchronen Vorgängen ist. Deswegen musst Du das im Handler machen, wenn es fertig ist. In dem Fall wäre das EAP, gibt auch TAP mit async await etc., aber das wirste glaub ich nicht nutzen.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Also ich habe jetzt etwas herum probiert aber es gibt noch ein Problem.
    Wie kann ich schauen das der Download beendet ist?
    Hier mein Button;

    VB.NET-Quellcode

    1. Private Sub Download_Action_Click(sender As Object, e As EventArgs) Handles Download_Action.Click
    2. wc.DownloadFileAsync(New Uri("http://51.254.23.224/download/action/1.27.0/Action_Setup_1_27_0.exe"), "C:\PriByte\Setup.exe")
    3. Process.Start("C:\PriByte\Setup.exe")
    4. End Sub

    Der Fehler.
    Fehler: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird

    Muss ja irgendwie abfragen oder so ob es fertig ist.
    Ja, natürlich.

    Trade schrieb:

    Deswegen musst Du das im Handler machen

    Sonst lädt der ja noch runter, wenn der schon ausführen will. Schau mal nach DownloadFileCompleted.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: