|
VisualBasic Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
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"