Nachdem ich solche sachen wie:
my.computer.network.download file.... What else.. geshen habe dachte ich
mich trift nen schlag.. Ehrlich jetz? So coded man natürlich keine Patcher (:
Ich zeig euch wie ihr einen inteligentern Patcher coded mit Versions
check.
Was brauchen wir (abgesehen von VB 2010):
2x Progressbar
1x Textbox
Und nen Label.. Nicht notwendig..
Zuerst:
Direkt unter dem "Public Class Form1"
Kommt die Deklaration
PHP Code:
Public WithEvents wb As New System.Net.WebClient
Form1.load Event wo wir folgenden Code eintragen:
PHP Code:
wb.Proxy = Nothing
PHP Code:
Public Class Form1
Public WithEvents wb As New System.Net.WebClient
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
wb.Proxy = Nothing
End Sub
End Class
Das kommt direkt darunter.
PHP Code:
If My.Computer.Network.IsAvailable Then //Checkt ob Internet verfügbar ist
wb.DownloadFileAsync(new uri("LINK MIT DATEI BSP: http://hahaha.de/version.txt"), "SPEICHERNAME UND ORT BSP: "version.txt" ")
End If
(Für dummis: Das Ding wo oben "Form1 Ereignisse steht")
Und klickt das an.
Gleich daneben ist eine weiter leiste wo ihr dann folgendes sucht:
"DownloadprogressChanged"
Sobald ihr das gefunden habt, klickt ihrs an und gebt darin folgendes ein:
PHP Code:
ProgressBar1.Value = e.ProgressPercentage
soll. Jap! Es tut den Fortschritt auf die Progressbar1 Übertragen
Progressbar1.value heist soviel wie die % angabe
e.progresspercentage ist der fortschritt des downloads.
Sow.. Nun ladet er die Version runter und natürlich wollen wir das er die version dann auch liest wenn er sie heruntergeladen hat.
Dazu folgendes:
Ihr macht das gleiche wie oben nur diesmal klickt ihr auf "DownloadFileCompleted"
Dies bewirkt das der Code ausgeführt wird, sobald der Download abgeschlossen ist.
Der Code wird dann Das Lesen der Datei sein.
Diese lautet wie folgt.
PHP Code:
Dim file As String
file = My.Computer.FileSystem.ReadAllText("version.txt")
So.. Nun hat der die Datei Version gedownloaded und gelesen & zwischen gespeichert.
Nun muss er prüfen ob Version.txt = Client nummer ist.
Das sinvollste wäre dann eine Einstellung zu machen
Dafür klickt ihr Doppelt auf My Project OBEN RECHTS.
Anschliesend öffnet sich ein Menü
Ihr geht auf Einstellungen und seht eine Tabelle.
Dort steht "Name" unten drunter steht "Setting"
Ihr ändert Setting in version und geht dann wieder raus.
NICHS Anderes ändern!
Dann wieder zurück ins Download Completed Handler
(Wo der Auslese Code ist...... ._.)
Und gibt folgenden Code ein:
PHP Code:
If Not file = My.Settings.version Then
//Das checkt ob Version.txt = version ist die im Client oder eher Patcher gespeichert ist.
//Wenn nicht dann aktiviert sich der folgende code.
//Hierbei wird dann der Eigendliche Patchvorgang gestartet.. Logisch?
End If
Neue Public erstellen.
Machts wie ganz oben:
PHP Code:
Public WithEvents wb2 as new System.Net.Webclient
zwischen den If not... und End if kommt das rein:
PHP Code:
wb.Proxy = Nothing
wb2.DownloadFileAsync(New Uri("http://deinemama.com/locale_de,epk"), My.Computer.FileSystem.CurrentDirectory + "\patch\" + "locale_de.epk")
Zwischencheck:
Nun ladet er die Datei locale runter und setz sie ins Patch verzeichniss.
Nun habt ihr die Grundbausteine Gelernt wie man einen Patcher baut.
Der nächste schritt wäre gewesen:
Geht wieder ganz nach oben und klickt diesmal wb2 an
dann wieder die leiste daneben und klickt "DownloadProgressChanged"
an und gibt das gleiche ein wie bei Version.txt
Dann wb3 erstellen für Root etc.
Schon arbeit so ein patcher oder?
Viel Spaß (:
MiNdFrReAk






