TabControl WebBrowser Download Checken

  • Allgemein

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    TabControl WebBrowser Download Checken

    Hallo,
    meine Frage wurde hier schon öfter besprochen, aber es funktioniert nicht beim TabControl.
    Mein Problem:
    Ich habe einen WebBrowser in einem TabControl. Nun soll wenn ein Downloadlink auf einer Internetseite angeklickt wird, eine neue Form öffnen mit der man Download starten, abbrechen und den Fortschritt sehen kann. Wie aber erkennt mein Programm das ein beliebiger Link angeklickt worden ist?
    Da solltest Du mal ein wenig Code sehen lassen und genau beschreiben, was Du machst und was nicht passiert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe einen TabControl der als normaler WebBrowser mit Tabs funktioniert. Ich habe versucht es mit Timer zu regeln der dann immer überprüft ob ein Download startet, Also so

    VB.NET-Quellcode

    1. Me.timer1.enabled = true
    2. If File.download = true then
    3. Form2.show()
    4. End If

    Das funktioniert allerdings nicht, wenn ich einen Download starte öffnet sich form2 nicht.
    Das ist der Punkt an dem ich hilfe brauche.
    Das Programm soll erkennen, ein Download vom Link "http://www.beispiellink-denesnichtgibt.de" wurde gestartet, also öffne Form2 und breche den Download über IE ab.
    Du musst doch einen Download starten und bekommst ein Progress-Event sowie ein Ready-Event. Im letzteren kannst Du den Start Deiner Form positionieren.

    VB.NET-Quellcode

    1. Private WithEvents downloader As System.Net.WebClient ' WebClient für Datei-Download
    2. Private MyForm2 As Form2
    3. Public Sub New()
    4. downloader = New System.Net.WebClient ' Objekt anlegen (so noch nicht getan)
    5. MyForm2 = New Form2
    6. End Sub
    7. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    8. downloader.DownloadFileAsync(end_DL_url, FileName) ' Download starten
    9. End Sub
    10. Private Sub downloader_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloader.DownloadProgressChanged
    11. ' hier z.B. eine Progressbar ansteuern
    12. End Sub
    13. Private Sub downloader_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles downloader.DownloadFileCompleted
    14. ' Hier Deine Form anzeigen
    15. MyForm2.Show()
    16. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du musst doch so etwas aufrufen wie

    VB.NET-Quellcode

    1. downloader.DownloadFileAsync(...)
    da weißt Du (und Dein Programm) doch, dass der Download gestartet wurde. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    IWantToRe-CreateVB schrieb:

    Nun soll wenn ein Downloadlink auf einer Internetseite angeklickt wird, eine neue Form öffnen mit der man Download starten, abbrechen und den Fortschritt sehen kann.

    Auf die schnelle fund ich nichts, was melden täte, wann ein User auf eine Site klickst.

    Aber der Webbrowser erledigt Downloads doch eigenständig, odr?

    Vlt. kannstedich ja auch übers System.Windows.Forms.WebBrowser.FileDownload-Event informieren - k.A., ob das letztlich was nützt
    @RodFromGermany:
    Ja, aber man weiß ja nicht beim auf welchen Link der Benutzer geklickt hat.

    @ErfinderDesRades:

    ErfinderDesRades schrieb:

    Vlt. kannstedich ja auch übers System.Windows.Forms.WebBrowser.FileDownload-Event informieren - k.A., ob das letztlich was nützt
    Das geht nicht da ich einen TabControl benutze und nur ungern auf die Tabs verzichte.

    ErfinderDesRades schrieb:

    Aber der Webbrowser erledigt Downloads doch eigenständig, odr?
    Ja, ich wollte nur das Design ein bischen schöner und individueller machen.