Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 07:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



VB2008 Updater/Patcher Problem

Discussion on VB2008 Updater/Patcher Problem within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #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.ObjectByVal e As System.EventArgsHandles MyBase.Load
        statusVersion
.Text "Version " Application.ProductVersion
        
'Dim i As Integer = Application.ExecutablePath.LastIndexOf("\")
        '
Dim s As String Application.ExecutablePath.Remove(079)
        
'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.ProductVersionThen
            
If (MsgBox("Neues Update verfügbar! Willst du gleich Updaten?"MsgBoxStyle.Question MsgBoxStyle.YesNo) = MsgBoxResult.YesThen
                
'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.ObjectByVal e As System.EventArgsHandles NachUpdatesSuchenToolStripMenuItem.Click
        UpdateProgram
()
    
End Sub
End 
Class 
Hoffe bin hier in der richtigen Sektion geht ja im Coding, falls nicht dann Bitte verschieben
NeonBlue is offline  
Thanks
1 User
Old 04/21/2010, 18:13   #2


 
Cholik's Avatar
 
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
#moved
Cholik is offline  
Old 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?
Elite-1337 is offline  
Thanks
1 User
Old 05/03/2010, 17:30   #4
 
romaneso's Avatar
 
elite*gold: 807
Join Date: Jun 2008
Posts: 717
Received Thanks: 93
ist bei mir genauso!
bitte um hilfe!
romaneso is offline  
Old 05/03/2010, 17:42   #5
 
Madd Eye's Avatar
 
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
Madd Eye is offline  
Thanks
1 User
Old 05/03/2010, 17:59   #6
 
romaneso's Avatar
 
elite*gold: 807
Join Date: Jun 2008
Posts: 717
Received Thanks: 93
wenn es die seite noch gäbe?!
romaneso is offline  
Old 05/03/2010, 18:20   #7
 
romaneso's Avatar
 
elite*gold: 807
Join Date: Jun 2008
Posts: 717
Received Thanks: 93
So0ry für doppelpost
aber kennt irgendwer einen funktionenden Updater?
glg.
romaneso is offline  
Old 05/03/2010, 19:07   #8
 
Madd Eye's Avatar
 
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
Madd Eye is offline  
Thanks
2 Users
Old 05/04/2010, 17:17   #9
 
schido91's Avatar
 
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?
schido91 is offline  
Thanks
1 User
Old 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
NeonBlue is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.