Quellcode
- Imports System.Security.Cryptography
- Imports System.Text
- Imports System.IO
- Imports System.Net
- Public Class Form1
- Public WithEvents Patchlist As WebClient
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- tmWait.Start()
- tbAusgang.Text = tbAusgang.Text & "- prüfe auf Version"
- 'fd.bin Aktualitätsvorgang
- Try
- Dim patchliste As New System.Xml.XmlDocument()
- patchliste.Load("http://daywalker.ij2.de/patcher/patchlist.xml")
- lbDateiA.Text = patchliste.GetElementsByTagName("checksum").Item(0).ChildNodes(0).InnerText
- Catch ex As Exception
- tbAusgang.Text = tbAusgang.Text & vbNewLine & "- Fehler beim laden der Patchliste"
- End Try
- 'Falls die Datei existiert
- If My.Computer.FileSystem.FileExists("C:/FileDeleter/fd.bin") Then
- 'den HashCode berechnen
- Try
- lbDateiN.Text = MD5FileHash("C:/FileDeleter/fd.bin")
- Catch ex As Exception
- 'Falls es einen Fehler geben sollte
- tbAusgang.Text = tbAusgang.Text & vbNewLine & "- Fehler beim prüfen von fd.bin"
- End Try
- 'Falls sich was an der Datei verändert haben sollte
- Try
- If lbDateiN.Text = lbDateiA.Text Then
- 'Falls fd.bin nicht aktuell ist
- tbAusgang.Text = tbAusgang.Text & vbNewLine & "- fd.bin wird heruntergeladen"
- Patchlist.DownloadFileAsync(New Uri("http://daywalker.ij2.de/patcher/fd.bin"), ("C:/FileDeleter/fd.bin"))
- Else
- 'Falls die Datei aktuell ist
- tbAusgang.Text = tbAusgang.Text & vbNewLine & "- fd.bin ist aktuell" & vbNewLine & "- das Programm wird gestartet"
- End If
- Catch ex As Exception
- tbAusgang.Text = "Fehler"
- End Try
- Else
- 'falls fd.bin noch nicht existiert
- tbAusgang.Text = tbAusgang.Text & vbNewLine & "- fd.bin konnte nicht gefunden werden" & vbNewLine & "- fd.bin wird heruntergeladen"
- Patchlist.DownloadFileAsync(New Uri("http://daywalker.ij2.de/patcher/fd.bin"), ("C:/FileDeleter/fd.bin"))
- End If
- End Sub
- Public Function MD5FileHash(ByVal sFile As String) As String
- Dim MD5 As New MD5CryptoServiceProvider
- Dim Hash As Byte()
- Dim Result As String = ""
- Dim Tmp As String = ""
- Dim FN As New FileStream(sFile, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)
- MD5.ComputeHash(FN)
- FN.Close()
- Hash = MD5.Hash
- For i As Integer = 0 To Hash.Length - 1
- Tmp = Hex(Hash(i))
- If Len(Tmp) = 1 Then Tmp = "0" & Tmp
- Result += Tmp
- Next
- Return Result
- End Function
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Me.Close()
- End Sub
- Private Sub Patchlist_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles Patchlist.DownloadProgressChanged
- Me.ProgressBar1.Value = e.ProgressPercentage
- lbbytes.Text = e.BytesReceived & " von " & e.TotalBytesToReceive & " Bytes"
- End Sub
- End Class
Wo liegt da mein Fehler??
Immer, wenn ich die Datei aus meinem Debug Ordner starten will kommt da folgende Fehlermeldung:
"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt"