Я хочу сделать лаунчер для моей игры. Модуль запуска должен выполнить проверку файлов, когда я нажимаю кнопку «Воспроизвести».
Я хочу проверить хэш-коды (например, файлы исправлений), которые уже установлены, и файлы исправлений на моем сервере. ,Файлы, которые я хочу проверить, должны находиться в списке файлов .txt.
Если код не совпадает с файлами на сервере, я хочу перезаписать локальные файлы.
После загрузки файла следующий должен начаться, пока все файлы не будут загружены. Я хочу показать прогресс с ProgressBar.
Я проверил это только с одним жестко закодированным файлом. С большим количеством файлов я не нашел решения.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Dim URL As String = "http://213.196.154.200/downloads/WOTLK/WOTLK/Data/patch-3.MPQ"
Application.DoEvents()
hhtpclient.DownloadFileAsync(New Uri(URL), Pfad + "/data/patch-3.mpq", Stopwatch.StartNew)
Application.DoEvents()
Label2.Visible = True
Label3.Visible = True
ProgressBar1.Visible = True
Button2.Visible = True
Button1.Enabled = False
Label5.Visible = False
Catch ex As Exception
MsgBox("Download fehlgeschlagen!" & vbNewLine & ex.ToString, MsgBoxStyle.Critical, "Error")
End
End Try
End Sub
Private Sub hhtpclient_DownloadFileCompleted(sender As Object, e As AsyncCompletedEventArgs) Handles hhtpclient.DownloadFileCompleted
If Abbort = "0" Then
Dim customMsgbox1 = New Form2("Download erfolgreich!")
customMsgbox1.btnCustomNo.Visible = False
customMsgbox1.btnCustomYes.Location = New Point(179, 229)
customMsgbox1.ShowDialog()
Label2.Visible = False
Label3.Visible = False
ProgressBar1.Visible = False
Abbort = "0"
PictureBox8.Visible = False
Else
Dim customMsgbox2 = New Form2("Download abgebrochen!")
customMsgbox2.btnCustomNo.Visible = False
customMsgbox2.btnCustomYes.Location = New Point(179, 229)
customMsgbox2.ShowDialog()
Label2.Visible = False
Label3.Visible = False
ProgressBar1.Visible = False
Abbort = "0"
End If
Button2.Visible = False
Button1.Enabled = True
Label5.Visible = True
End Sub
Private Sub hhtpclient_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles hhtpclient.DownloadProgressChanged
Dim SW As Stopwatch
SW = Stopwatch.StartNew
Me.ProgressBar1.Value = e.ProgressPercentage
Dim totalbytes As Double = e.TotalBytesToReceive
Dim bytes As Double = e.BytesReceived
If totalbytes >= "1000000000" Then
Label2.Text = Math.Round(bytes / 1024000000.0, 2) & " / " & Math.Round(totalbytes / 1024000000.0, 2) & " GB"
ElseIf totalbytes >= "1000000" Then
Label2.Text = Math.Round(bytes / 1024000.0, 2) & " / " & Math.Round(totalbytes / 1024000.0, 2) & " MB"
End If
If bytes >= "1000000" Then
Label3.Text = (e.BytesReceived / 1024000.0 / (DirectCast(e.UserState, Stopwatch).ElapsedMilliseconds / 1000.0#)).ToString("0.0") & " MB/s"
ElseIf bytes >= "1000" Then
Label3.Text = (e.BytesReceived / 1024.0 / (DirectCast(e.UserState, Stopwatch).ElapsedMilliseconds / 1000.0#)).ToString("0.0") & " KB/s"
End If
End Sub
Я попробовал этот код. Файлы будут загружаться, но я не знаю, как добавить ProgressBar и приложение зависнет при загрузке файлов:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'===Downloadvorgang===
Dim Einl() As String = Split(My.Computer.FileSystem.ReadAllText("D:/Test.txt"), vbNewLine)
For i As Long = 0 To UBound(Einl)
Dim l() As String = Split(Einl(i), ";")
Dim url As String = l(0)
Dim dateiname As String = l(1)
My.Computer.Network.DownloadFile(url, "D:/" & dateiname, "", "", False, 100000, True)
Next
MsgBox("Die Dateien wurden erfolgreich heruntergeladen!", MsgBoxStyle.OkOnly, "Download beendet")
'===Downloadvorgang Ende====
End Sub