|
You last visited: Today at 07:25
Advertisement
VB2008 Updater/Patcher Problem
Discussion on VB2008 Updater/Patcher Problem within the .NET Languages forum part of the Coders Den category.
04/21/2010, 17:44
|
#1
|
elite*gold: 224
Join Date: Mar 2009
Posts: 2,370
Received Thanks: 2,977
|
VB2008 Updater/Patcher Problem
Hallo,
Ich habe da ein Probleme mit einem Updater, ich wollte einen machen der über einen FTP-Server mehrere Dateien in einen Ordner lädt. Da ich in VB2008 noch Anfänger bin, habe ich mir bei YouTube ein paar TuTs gesucht und auf einen gestoßen der für mich aussreichen sollte.
Hier, dass ist leider sehr lang (38 Min.) aber vielleicht kennt es jemans schon.
Im Video werden am Ende mehrere Dateien hintereinander geladen wie z.b. ein Bild, Exe, Textdatei usw. und bei mir lädt der nur immer die "version.txt" runter sonst gar keine anderen. Egal was ich in die "files.txt" eintrage es wird immer nur die "version.txt" runtergeladen.
Könnt ihr mir vielleicht Helfen ?
Hier mein jetziger Code:
PHP Code:
Public Class frmMain
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
statusVersion.Text = "Version " & Application.ProductVersion
'Dim i As Integer = Application.ExecutablePath.LastIndexOf("\")
'Dim s As String = Application.ExecutablePath.Remove(0, 79)
'Updater.exe
'MsgBox(s)
End Sub
Private Sub UpdateProgram()
Dim base As String = "http://Mein-FTP-Server/"
Dim startup As String = Application.StartupPath
If (My.Computer.FileSystem.FileExists(startup + "\version.txt")) Then
My.Computer.FileSystem.DeleteFile(startup + "\version.txt")
End If
My.Computer.Network.DownloadFile(base + "\version.txt", startup + "\version.txt")
Dim newversion As Double = Convert.ToDouble(My.Computer.FileSystem.ReadAllText(startup + "\version.txt"))
If (newversion > Application.ProductVersion) Then
If (MsgBox("Neues Update verfügbar! Willst du gleich Updaten?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes) Then
'download new version
If (My.Computer.FileSystem.FileExists(startup + "\files.txt")) Then
My.Computer.FileSystem.DeleteFile(startup + "\version.txt")
End If
My.Computer.Network.DownloadFile(base + "\files.txt", startup + "\files.txt")
Dim todownload As New TextBox
todownload.Multiline = True
todownload.Text = My.Computer.FileSystem.ReadAllText(startup + "\files.txt")
Dim line As Integer = ""
Dim exename As String = Application.ExecutablePath.Remove(0, Application.ExecutablePath.LastIndexOf("\") + 1)
For Each line In todownload.Lines
If (line = exename) Then
My.Computer.Network.DownloadFile(base + line, startup + "\" + line + ".new")
Else
If (My.Computer.FileSystem.FileExists(startup + "\" + line)) Then
My.Computer.FileSystem.DeleteFile(startup + "\" + line)
End If
My.Computer.Network.DownloadFile(base + line, startup + "\")
End If
Next
MsgBox("Upadte war Erfolgreich! Der Updater wird Neugestartet!", MsgBoxStyle.Information)
My.Computer.FileSystem.RenameFile(Application.ExecutablePath, exename + ".old")
My.Computer.FileSystem.RenameFile(startup + "\" + exename + ".new", exename)
Application.Restart()
Else
'do not download new version
MsgBox("Ok...", MsgBoxStyle.Information)
End If
End If
End Sub
Private Sub NachUpdatesSuchenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NachUpdatesSuchenToolStripMenuItem.Click
UpdateProgram()
End Sub
End Class
Hoffe bin hier in der richtigen Sektion geht ja im Coding, falls nicht dann Bitte verschieben
|
|
|
04/21/2010, 18:13
|
#2
|
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
|
#moved
|
|
|
04/21/2010, 18:48
|
#3
|
elite*gold: 0
Join Date: May 2009
Posts: 41
Received Thanks: 13
|
mal debuggen:
- ist da "newversion" auch größer als "ProductVersion"?
Code:
If (My.Computer.FileSystem.FileExists(startup + "\files.txt")) Then
My.Computer.FileSystem.DeleteFile(startup + "\version.txt")
Warum löscht du eigentlich "version.txt", wenn "files.txt" vorhanden is?
|
|
|
05/03/2010, 17:30
|
#4
|
elite*gold: 807
Join Date: Jun 2008
Posts: 717
Received Thanks: 93
|
ist bei mir genauso!
bitte um hilfe!
|
|
|
05/03/2010, 17:42
|
#5
|
elite*gold: 260
Join Date: Apr 2010
Posts: 229
Received Thanks: 142
|
Schaut mal hier:
Damit spart ihr euch einen Haufen arbeit ^^
Und das ist für Anfänger gedacht
|
|
|
05/03/2010, 17:59
|
#6
|
elite*gold: 807
Join Date: Jun 2008
Posts: 717
Received Thanks: 93
|
wenn es die seite noch gäbe?!
|
|
|
05/03/2010, 18:20
|
#7
|
elite*gold: 807
Join Date: Jun 2008
Posts: 717
Received Thanks: 93
|
So0ry für doppelpost
aber kennt irgendwer einen funktionenden Updater?
glg.
|
|
|
05/03/2010, 19:07
|
#8
|
elite*gold: 260
Join Date: Apr 2010
Posts: 229
Received Thanks: 142
|
Dann eben so:
Man benötigt:
- einen FTP server
- eine Form namens Form2
- ein Label namens Label2
- eine Datei namens "version.txt" auf dem FTP-Server
- einen Button namens Button1
Code:
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\version.txt") Then ' Prüfen ob Datei vorhanden ist
My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\version.txt") ' Wenn ja löschen
End If
My.Computer.Network.DownloadFile("http://ftpadresse.de/version.txt", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\version.txt") ' Datei Neu Downloaden - Hier den Link zu der version.txt
Dim Stream As New IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\version.txt") ' Auslesen
Dim z1 As String = Stream.ReadLine ' Inhalt der ersten Zeile wird in "z1" gespeichert
Dim z2 As String = Stream.ReadLine ' Inhalt der zweiten Zeile wird in "z1" gespeichert
Stream.Close()
Dim lblt As Integer = Label2.Text
If lblt < z1 Then' Wenn Label2.Text kleiner ist als "z1" dann
My.Computer.Network.DownloadFile(z2, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\UpdateV" + z1 + ".exe") ' Neue .Exe in den Dokumenten Ordner laden (Downloadlink in "z2")
MsgBox("Update wurde fertiggestellt.", MsgBoxStyle.Information, "IMail") ' Nachricht wenn download erfollgreich war
Else
MsgBox("Kein Update gefunden", MsgBoxStyle.Information, "IMail") ' Nachricht wenn keine Updates vorhanden sind
End If
Me.Close() ' Schliessen
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label2.Visible = False
End Sub
End Class
In dem Label steht immer die aktuelle Version (in einer einstelligen Zahl - bei der neuen Version nicht vergessen die Zahl um 1 zu erhöhen)
Wenn man jetzt eine neue Version anbieten möchte, muss man in die Version.txt in der ersten Zeile die nächste Zahl reinschreben (zb 2 für version 2) und in der zweiten Zeile den Downloadlink.
Einfach ein wenig umschreiben dann geht das schon, denn damit kann man zuzeit nur eine Datei runterladen
|
|
|
05/04/2010, 17:17
|
#9
|
elite*gold: 0
Join Date: Jan 2010
Posts: 492
Received Thanks: 145
|
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Enabled = False
Button1.Text = "Please Wait..."
TextBox1.Text = "patch gestartet."
ProgressBar1.Value = "1"
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Value = "2"
TextBox1.Text = "Patch.txt wird geprüft."
If My.Computer.FileSystem.FileExists("patch.txt") Then
My.Computer.FileSystem.DeleteFile("Patch.txt")
TextBox1.Text = "patch.txt wurde gelöscht."
End If
My.Computer.Network.DownloadFile("http://www.undermoonshine.de/patch_undermoonshine_de/patchlist.txt", "patch.zxz")
TextBox1.Text = "Neue patch.txt runtergeladen."
ProgressBar1.Value = "3"
'-------------------------------------------Patchlist----------------------------------------
TextBox1.Text = "locale_de.eix wird geprüft."
If My.Computer.FileSystem.FileExists("pack/locale_de.eix") Then
My.Computer.FileSystem.DeleteFile("pack/locale_de.eix")
TextBox1.Text = "locale_de.eix wurde gelöscht."
End If
My.Computer.Network.DownloadFile("http://www.undermoonshine.de/patch_undermoonshine_de/patchlist.php", "pack/locale_de.eix")
TextBox1.Text = "Neue locale_de.eix runtergeladen."
ProgressBar1.Value = "4"
'-------------------------------------------Patchlist----------------------------------------
TextBox1.Text = "locale_de.epk wird überprüft."
If My.Computer.FileSystem.FileExists("pack/locale_de.epk") Then
My.Computer.FileSystem.DeleteFile("pack/locale_de-epk.")
TextBox1.Text = "locale_de.epk wurde gelöscht."
End If
ProgressBar1.Value = "5"
My.Computer.Network.DownloadFile("http://undermoonshine.de/patch_undermoonshine_de/locale_de.epk", "pack/locale_de.epk")
TextBox1.Text = "Neue locale_de.epk runtergeladen."
TextBox1.Text = "patchen erfolgreich"
ProgressBar1.Value = "100"
If My.Computer.FileSystem.FileExists("fd.exe") Then
Button1.Text = "xA Starten"
Button1.Enabled = True
If Button1.Text = "AX Starten" Then
Shell("hf.exe")
End If
Else
Button1.Text = "Client exestiert nicht!"
TextBox1.Text = "Client Runterladen!"
End If
Timer1.Stop()
End Sub
End Class
Das hab ich bissher, was du dadrinne ändern musst weist du wohl oder?
|
|
|
05/05/2010, 21:52
|
#10
|
elite*gold: 224
Join Date: Mar 2009
Posts: 2,370
Received Thanks: 2,977
|
habe den thread etwas vergessen, danke für die antworten/posts werde es mir mal angucken
|
|
|
 |
Similar Threads
|
[RELASE] PATCHER (UPDATER) für deinen Clienten! HOT!
10/22/2011 - Metin2 PServer Guides & Strategies - 150 Replies
Hi Com,
wie der Titel schon sagt ermögliche ich euch mit meinem neuen bescheidenen Programm was sich
viele von euch schon lang ersehnen: Den Patch des Metin2-Clienten ihrer Spieler.
Kurze Einleitung:
Der Patch ist in AutoIt geschrieben. Er ist nicht für China-Clienten geeignet sondern nur für Deutsche (locale/de).
Ist der Client nicht aktuell, so wird er gepatcht. Ohne das der Patch durchgeführt wurde
kann der Spieler das Spiel nicht starten. (Jaa ich weis mit Bypass geht alles :D)
|
kal INT updater problem
01/14/2010 - Kal Online - 13 Replies
Ahoi.
Wollte nach ner Zeit lang mal wieder INT zocken musste aber feststellen, dass es nen kampf ist Kal überhaupt zum laufen zu bekommen...lol
Ich benutze Windows Vista 64-Bit.
Ich starte den Updater (als Admin)
darauf bekomme ich schon folgende Fehlermeldung:
Exception.exe funktioniert nicht mehr
Ok, updater funzt trotzdem, ABER..sobald dieser fertig ist (was immerhin 5 stunden dauert...) kackt die engine.exe ab und ich darf den updater nochmal neu starten und alles nochmal neu...
|
Wie erstellt man einen Updater/Patcher?
05/02/2009 - Lin2 Private Server - 2 Replies
Moin.
Ich hätte ein mehr oder weniger großes Problem was meinen Lineage 2 Freeshard angeht.
Wir wollen einen Updater erstellen,mit dem sofort unsere Spieleversion sowie unsere Updates aufgespielt werden.
Sollte es wichtig sein : Wir spielen auf Hellbound.
Sollte also jemand wissen wie es geht,würde ich mich freuen,solltet ihr es Mitteilen.
Solltet ihr einen Link besitzten,wär es auch ok ;)
|
[Release?]GGLESS Patcher Live Updater 1.1 (v50)
05/22/2008 - MapleStory - 8 Replies
This is a program I made to look after the MapleStory patcher, this one gives updates about PinCracking, Hacks and GGLESS. It also allows you to download the current GGLESS and I will update the files as MapleStory patches, you gotta read the notices to know whether or not the Patcher has GGLESS for your current version. Currently it updates CashShop items, MappleEvents,hacking news, and downloads GGLESS, also checks for the updates. Later on I will configure it to download the Bypasses,...
|
All times are GMT +1. The time now is 07:26.
|
|