Progressbar zu einem Download

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von SeriTools.

    Progressbar zu einem Download

    Hallo alle zusammen :thumbup:

    Kann mir wer nenn tipp geben, wie ich es schaffe eine Progress bar zu programmieren, von der ich nenn Downloadfortschritt ablesen kann? :wacko:
    Ich habe mir nämlich eine YouTube Konverter programmiert, weiß aber nicht wann das Video fertig runter geladen haben.

    :!: Danke schon mal wenn mir wer antwortet :thumbdown:

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

    Was könnte ich dort rin schreiben ______ ? ?(

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.IO
    3. Public Class Form1
    4. Dim WithEvents Http_Download As New WebClient
    5. Dim start_Dl_Url As String
    6. Private Sub cmdDownload_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDownload.Click
    7. Try
    8. Dim qualy As String
    9. Dim eingabe As String
    10. Dim such As String
    11. Dim position As Integer
    12. Dim anzeige As String
    13. eingabe = txtLink.Text
    14. such = "&fm="
    15. position = eingabe.IndexOf(such)
    16. If position = -1 Then
    17. If optGering.Checked = True Then
    18. qualy = ""
    19. ElseIf optHoch.Checked = True Then
    20. qualy = "&fm=22"
    21. ElseIf optHöchste.Checked = True Then
    22. qualy = "&fm=35"
    23. ElseIf optMittel.Checked = True Then
    24. qualy = "&fm=18"
    25. End If
    26. End If
    27. txtLink.Text = txtLink.Text & qualy
    28. Label3.Text = "Ob der Download beendet ist sehen Sie indem Sie in dem von Ihnen gewählten Verzeichnis" & vbCrLf & "auf das Video klicken. Wenn es abgespielt werden kann ist der Download beendet. Kann es" & vbCrLf & "nicht abgespielt werden müssen sie noch einige Zeit warten."
    29. Dim httpURL As New System.Uri(txtLink.Text & qualy)
    30. Dim request As HttpWebRequest = HttpWebRequest.Create(httpURL)
    31. request.Method = WebRequestMethods.Http.Get
    32. Dim response As HttpWebResponse = request.GetResponse()
    33. Dim reader As New StreamReader(response.GetResponseStream())
    34. Dim start_DL_url As String = reader.ReadToEnd()
    35. response.Close()
    36. ' Download Link
    37. Dim anfang_stelle_des_video_downloads_1 As Integer = InStr(start_DL_url, "<!-- end contenttop section -->") + 30
    38. Dim anfang_stelle_des_video_downloads_2 As Integer = InStr(anfang_stelle_des_video_downloads_1, start_DL_url, "url_map") + 13
    39. Dim ende_stelle_des_video_downloads_1 As Integer = InStr(anfang_stelle_des_video_downloads_2 + 5, start_DL_url, "%2C")
    40. Dim Laenge_des_downloads_1 As Integer = ende_stelle_des_video_downloads_1 - anfang_stelle_des_video_downloads_2
    41. Dim Name_des_downloads_1 As String
    42. Name_des_downloads_1 = Mid(start_DL_url, anfang_stelle_des_video_downloads_2, Laenge_des_downloads_1)
    43. Dim end_DL_url As String = Name_des_downloads_1.Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&").Replace("%25", "%").Replace("%2C", ",").Replace("%25", "%").Replace("%3A", ":").Replace("%2F", "/")
    44. 'Ordner & Download
    45. Dim sfd As New SaveFileDialog
    46. sfd.Filter = "Video|.flv"
    47. If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
    48. Dim Http_Download As New WebClient
    49. Http_Download.DownloadFileAsync(New Uri(end_DL_url), sfd.FileName)
    50. End If
    51. Catch ex As Exception
    52. MsgBox("Kein gültiges Video gefunden! Bitte verwenden Sie nur YouTube Videos!")
    53. End Try
    54. End Sub
    55. Private Sub cmdSurf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSurf.Click
    56. Surf.Show()
    57. End Sub
    58. Private Sub txtLink_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtLink.TextChanged
    59. Label3.Text = ""
    60. End Sub
    61. Private Sub WebBrowser1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs)
    62. Handles ________.ProgressChanged
    63. Try
    64. ProgressBar1.Maximum = e.MaximumProgress
    65. ProgressBar1.Value = e.CurrentProgress
    66. Catch
    67. End Try
    68. End Sub
    69. End Class

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Sebi0007“ ()

    Dann muss der WebClient aber auch als WithEvents deklariert werden, denn sonst kann der ein solches Event nicht haben (Naja, außer mit AddHandler)

    Edit: Außerdem muss das Event umbenannt und die Signatur der Sub verändert werden...

    Kommt trotzdem ein Feler

    VB.NET-Quellcode

    1. Private Sub Http_Download_DownloadProgressChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles Http_Download.DownloadProgressChanged
    2. Try
    3. ProgressBar1.Maximum = e.MaximumProgress
    4. ProgressBar1.Value = e.CurrentProgress
    5. Catch
    6. End Try
    7. End Sub


    Fehler 4 Die Private Sub Http_Download_DownloadProgressChanged(sender As Object, e As System.Windows.Forms.WebBrowserProgressChangedEventArgs)-Methode kann das Public Event DownloadProgressChanged(sender As Object, e As System.Net.DownloadProgressChangedEventArgs)-Ereignis nicht behandeln, da die Signaturen inkompatibel sind.
    Naja, denk mal nach:

    (sender As Object, e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) ≠ (sender As Object, e As System.Net.DownloadProgressChangedEventArgs)

    Mfg
    Firestorm

    VB.NET-Quellcode

    1. Private Sub Http_Download_DownloadProgressChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles Http_Download.DownloadProgressChanged
    2. Try
    3. ProgressBar1.Maximum = e.MaximumProgress
    4. ProgressBar1.Value = e.CurrentProgress
    5. Catch
    6. End Try
    7. End Sub


    Öhhm willst du auf einmal einen Webbrowser mit Fortschritts anzeige????

    Du musst in disen Changed event (Dass wo vorhin gepostet wurde)Einfach nur ProgressBar1.value = e.ProgressPercent

    Und für des mit Label empfehle ich einfach mal google usw :thumbdown:

    VB.NET-Quellcode

    1. Private Sub Http_Download_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles
    2. Http_Download.DownloadProgressChanged
    3. With ProgressBar1
    4. .Value = e.ProgressPercentage
    5. End With
    6. End Sub


    Sollte eigentlich reichen, um deine Progressbar zu füllen :)
    : NV Updater | Nvidia Driver Update Tool