Http Patcher

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Nixodas.

    Hallo Community,
    ich habe ein kleines Problem
    Ich habe einen Patcher geschrieben, der sich eine Liste holt mit den Daten und dann diese Überprüft nach Größe und wenn diese nicht mit der lokalen Datein übereinstimmt, wird die Datei gedownloadet.
    Allerdings hängt sich das programm immer nach der 4ten Datei auf

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.IO, System.Net, System.Text
    2. Public Class Form1
    3. Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    4. Dim WithEvents client As New WebClient
    5. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    6. Try
    7. System.IO.File.Delete("patch.txt")
    8. Catch : End Try
    9. Try
    10. System.IO.File.Delete("browserpic1.jpg")
    11. Catch : End Try
    12. End Sub
    13. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    14. Try
    15. client.DownloadFile("http://*******.de/patch.txt", "patch.txt")
    16. Catch ex As Exception
    17. MsgBox("Fehler beim Übertragen der Patchlist!", MsgBoxStyle.Exclamation, "Patchlist")
    18. Me.Close()
    19. End Try
    20. TextBox1.ReadOnly = True
    21. client.DownloadFile("http://********.de/browserpic1.jpg", "browserpic1.jpg")
    22. PictureBox1.ImageLocation = "browserpic1.jpg"
    23. If Not Directory.Exists("pack") Then
    24. Directory.CreateDirectory("pack")
    25. End If
    26. If Not Directory.Exists("lib") Then
    27. Directory.CreateDirectory("lib")
    28. End If
    29. If Not Directory.Exists("mark") Then
    30. Directory.CreateDirectory("mark")
    31. End If
    32. If Not Directory.Exists("miles") Then
    33. Directory.CreateDirectory("miles")
    34. End If
    35. Dim i As Integer = 0
    36. For Each file In System.IO.File.ReadAllLines("patch.txt")
    37. i += 1
    38. Next
    39. ProgressBar1.Maximum = i
    40. End Sub
    41. Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    42. TextBox1.AppendText(">>Patcher by Nixodas<<" & vbNewLine)
    43. ProgressBar1.Value = 0
    44. Application.DoEvents()
    45. patch()
    46. End Sub
    47. Private Sub patch()
    48. For Each l In System.IO.File.ReadAllLines("patch.txt")
    49. Try
    50. TextBox1.AppendText("Überprüfung von: " & l & vbNewLine)
    51. Try
    52. Dim inetsize
    53. Dim request As FileWebRequest = CType(WebRequest.Create("http://*******.de/" & l), FileWebRequest)
    54. Dim response As FileWebResponse = CType(request.GetResponse(), FileWebResponse)
    55. inetsize = response.ContentLength
    56. If System.IO.File.Exists(l) Then
    57. Dim inf As New FileInfo(l)
    58. Dim locasize As Long
    59. locasize = inf.Length
    60. If locasize <> inetsize Then
    61. Try
    62. client.DownloadFileAsync(New Uri("http://********.de/" & l), l)
    63. TextBox1.AppendText("Download von: " & l & vbNewLine)
    64. TextBox1.ScrollToCaret()
    65. Catch ex2 As Exception
    66. TextBox1.AppendText("Fehler bei: " & l & vbNewLine)
    67. TextBox1.ScrollToCaret()
    68. End Try
    69. End If
    70. Else
    71. client.DownloadFileAsync(New Uri("http://*******.de/" & l), l)
    72. TextBox1.AppendText("Download von: " & l & vbNewLine)
    73. TextBox1.ScrollToCaret()
    74. End If
    75. Catch : End Try
    76. Catch
    77. TextBox1.AppendText("Fehler bei: " & l & vbNewLine)
    78. TextBox1.ScrollToCaret()
    79. End Try
    80. ProgressBar1.Value = ProgressBar1.Value + 1
    81. Application.DoEvents()
    82. Next
    83. Panel3.Visible = True
    84. End Sub
    85. Private Sub client_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles client.DownloadProgressChanged
    86. ProgressBar2.Value = e.ProgressPercentage
    87. End Sub
    88. Private Sub Panel1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.Click
    89. Try
    90. System.IO.File.Delete("patch.txt")
    91. Catch : End Try
    92. Try
    93. System.IO.File.Delete("browserpic1.jpg")
    94. Catch : End Try
    95. End
    96. End Sub
    97. Private Sub Panel2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel2.Click
    98. Process.Start("http://www.******.de/index.php")
    99. End Sub
    100. Private Sub Panel3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel3.Click
    101. Try
    102. Process.Start("programm.exe")
    103. Catch
    104. MsgBox("Die Datei programm.exe wurde nicht gefunden", MsgBoxStyle.Critical, "FatalError")
    105. End Try
    106. Try
    107. System.IO.File.Delete("patch.txt")
    108. Catch : End Try
    109. Try
    110. System.IO.File.Delete("browserpic1.jpg")
    111. Catch : End Try
    112. End Sub
    113. End Class


    hier ist ma die source
    Hi,
    hast du mal Debuggt oder so? So spontan wird dir hier wohl keiner helfen können, wenn da nicht mehr infos vorhanden sind... z.b. die Fehlermeldung.
    Und wenn man Debuggt kommt man meistens selbst dahinter. Sprech aus Erfahrung
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Ne es geht immernoch nicht
    Habe alle Trys rausgenommen
    aber er hängt sich weiterhin beid er dritten datei auf
    Es ist immer bei der dritten
    die erste datei wird runtergeladen die zweite ist leer und bei der dritten hängt er sich auf

    EDIT:// Ich denke es ist da er versuche alle dateien gleichzeitig zu downloaden
    kann ich irgendwie machen das er wartet bis eine datei fertig ist
    Kann ich irgendwie machen das er imemr eine datei runterlädt und erst dann die nächste?

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