Game Patcher/Starter

  • VB.NET
  • .NET (FX) 4.0

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von timonator.

    Game Patcher/Starter

    Guten Tag

    ich habe da ein Kleines Problem und zwar habe ich einen Patcher im internet gefunden diesen habe ich teils überarbeitet.
    Mein problem ist der patcher startet den download nicht und versucht auch nicht mal sich die version.txt oder die anderen zu laden.
    Kann mir jemand helfen den fehler zu finden??

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.IO
    3. Imports System.ComponentModel
    4. Imports Microsoft.Win32
    5. Imports System.Diagnostics
    6. Imports System.IO.PathTooLongException
    7. Public Class Form1
    8. Dim tRestant As Integer
    9. Dim tEcoule As Integer
    10. Dim TailleFichier As Integer = 0
    11. Dim TailleFichier2 As Integer = 0
    12. Dim seconde As Boolean = True
    13. Dim min As Integer = 0
    14. Dim max As Integer = 1
    15. Dim pbarvalue As Integer = 0
    16. Dim directory As String = "nochange"
    17. Dim file As String
    18. Private Sub UnRar(ByVal filepath As String, ByVal WorkingDirectory As String)
    19. Dim objRegKey As RegistryKey
    20. objRegKey = Registry.ClassesRoot.OpenSubKey("WinRAR\Shell\Open\Command")
    21. Dim obj As Object = objRegKey.GetValue("")
    22. Dim objRarPath As String = obj.ToString()
    23. objRarPath = objRarPath.Substring(1, objRarPath.Length - 7)
    24. objRegKey.Close()
    25. Dim objArguments As String
    26. objArguments = " X " & " " & filepath & " " + " " + WorkingDirectory
    27. Dim objStartInfo As New ProcessStartInfo()
    28. objStartInfo.UseShellExecute = False
    29. objStartInfo.FileName = objRarPath
    30. objStartInfo.Arguments = objArguments
    31. objStartInfo.WindowStyle = ProcessWindowStyle.Hidden
    32. objStartInfo.WorkingDirectory = WorkingDirectory & ""
    33. Dim objProcess As New Process()
    34. objProcess.StartInfo = objStartInfo
    35. objProcess.Start()
    36. End Sub
    37. Private Sub FlatButton1_Click(sender As Object, e As EventArgs) Handles FlatButton1.Click
    38. FolderBrowserDialog1.ShowDialog()
    39. directory = FolderBrowserDialog1.SelectedPath
    40. My.Computer.FileSystem.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma")
    41. My.Computer.FileSystem.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\directory.a3", directory, False)
    42. End Sub
    43. Private Sub FlatButton5_Click(sender As Object, e As EventArgs) Handles FlatButton5.Click
    44. If My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\directory.a3") Then
    45. file = My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\directory.a3") & "\arma3.exe""-connect= -port=2302 -password= -mod="
    46. Process.Start(file)
    47. Else
    48. MsgBox("Bitte Arma3 Verzeichnis auswählen!", MsgBoxStyle.Critical, "Fehler")
    49. End If
    50. End Sub
    51. Private Sub FlatButton2_Click(sender As Object, e As EventArgs) Handles FlatButton2.Click
    52. If My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\size.txt") Or My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Addons.rar") Then
    53. MsgBox("Sie haben bereits den Mod heruntergeladen! Überprüfen Sie, ob ein Update verfügbar ist", MsgBoxStyle.Exclamation, "Fehler")
    54. Else
    55. If directory = "nochange" Then
    56. MsgBox("Bitte wählen Sie das Arma 3 Verzeichnis!", MsgBoxStyle.Critical, "Fehler")
    57. Else
    58. tEcoule = 0
    59. PictureBox1.Visible = False
    60. FlatProgressBar1.Visible = True
    61. FlatLabel1.Visible = True
    62. FlatLabel2.Visible = True
    63. FlatLabel3.Visible = True
    64. Timer2.Start()
    65. BackgroundWorker1.RunWorkerAsync()
    66. End If
    67. End If
    68. End Sub
    69. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    70. If My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\directory.a3") Then
    71. directory = My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\directory.a3")
    72. Else
    73. MsgBox("Bitte wählen Sie das Arma3 Verzeichnis aus!", MsgBoxStyle.Information, "Priorität")
    74. End If
    75. End Sub
    76. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    77. Dim FichierInfo As System.IO.FileInfo = New System.IO.FileInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Addons.rar")
    78. Dim TailleFichier As Integer = FichierInfo.Length
    79. Dim size As Integer = My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\size.txt")
    80. pbarvalue = TailleFichier / size * 100
    81. FlatProgressBar1.Value = pbarvalue
    82. If pbarvalue = 100 Then
    83. FlatButton6.Visible = True
    84. Timer3.Stop()
    85. Timer1.Stop()
    86. MsgBox("Es sind keine neuen Updates verfügbar!", MsgBoxStyle.Information, "Beenden")
    87. End If
    88. End Sub
    89. Private Sub FlatButton4_Click(sender As Object, e As EventArgs) Handles FlatButton4.Click
    90. If My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version-OLD.txt") Then
    91. My.Computer.Network.DownloadFile("http://www.meinewebsite.de/download/download/version.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version.txt")
    92. If My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version.txt") = My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version-OLD.txt") Then
    93. My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version.txt")
    94. MsgBox("Es sind keine neuen Updates verfügbar!", MsgBoxStyle.Information, "Addons Update")
    95. ElseIf My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version.txt") <> My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version-OLD.txt") Then
    96. My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version-OLD.txt")
    97. My.Computer.FileSystem.RenameFile(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version.txt", "version-OLD.txt")
    98. My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\size.txt")
    99. My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Addons.rar")
    100. tEcoule = 0
    101. PictureBox1.Visible = False
    102. FlatProgressBar1.Visible = True
    103. FlatLabel1.Visible = True
    104. FlatLabel2.Visible = True
    105. FlatLabel3.Visible = True
    106. Timer2.Start()
    107. BackgroundWorker1.RunWorkerAsync()
    108. End If
    109. Else
    110. MsgBox("Bitte laden sie sich den Haupt Mod runter!", MsgBoxStyle.Exclamation, "Fehler")
    111. End If
    112. End Sub
    113. Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
    114. Timer1.Start()
    115. Timer3.Start()
    116. Timer2.Stop()
    117. End Sub
    118. Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
    119. My.Computer.Network.DownloadFile("http://www.meinewebsite.de/download/download/size.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\size.txt")
    120. My.Computer.Network.DownloadFile("http://www.meinewebsite.de/download/download/Addons.rar", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Addons.rar")
    121. If My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version.txt") Then
    122. My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version.txt")
    123. ElseIf My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version-OLD.txt") Then
    124. My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version-OLD.txt")
    125. End If
    126. My.Computer.Network.DownloadFile("http://www.meinewebsite.de/download/download/version.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\version-OLD.txt")
    127. End Sub
    128. Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
    129. Dim size As Integer = My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\size.txt")
    130. tEcoule += 1
    131. FlatLabel1.Text = "Vergangene Zeit : " & tEcoule
    132. If seconde = True Then
    133. Dim FichierInfo As System.IO.FileInfo = New System.IO.FileInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Addons.rar")
    134. TailleFichier = FichierInfo.Length
    135. FlatLabel3.Text = "Download-Geschwindigkeit : " & (TailleFichier - TailleFichier2) / 1000 & " Kb/s"
    136. tRestant = (size - TailleFichier) / (TailleFichier - TailleFichier2)
    137. seconde = False
    138. ElseIf seconde = False Then
    139. Dim FichierInfo As System.IO.FileInfo = New System.IO.FileInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Addons.rar")
    140. TailleFichier2 = FichierInfo.Length
    141. FlatLabel3.Text = "Download-Geschwindigkeit : " & (TailleFichier2 - TailleFichier) / 1000 & " Kb/s"
    142. seconde = True
    143. tRestant = (size - TailleFichier) / (TailleFichier2 - TailleFichier)
    144. End If
    145. FlatLabel2.Text = "Übrige Zeit: " & tRestant
    146. End Sub
    147. Private Sub FlatButton3_Click(sender As Object, e As EventArgs) Handles FlatButton3.Click
    148. MsgBox("Credits :" & vbNewLine & vbNewLine & "" & vbNewLine & vbNewLine & "" & vbNewLine & vbNewLine & "Erstelltvon """"", MsgBoxStyle.Information, "Credits")
    149. End Sub
    150. Private Sub FlatButton6_Click(sender As Object, e As EventArgs) Handles FlatButton6.Click
    151. If My.Computer.FileSystem.DirectoryExists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\LauncherArma") Then
    152. My.Computer.FileSystem.DeleteDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\LauncherArma", FileIO.DeleteDirectoryOption.DeleteAllContents)
    153. End If
    154. If My.Computer.FileSystem.FileExists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\modsname.txt") Then
    155. My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\modsname.txt")
    156. End If
    157. My.Computer.FileSystem.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\LauncherArma")
    158. UnRar(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Addons.rar", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\LauncherArma")
    159. Dim ligne As String
    160. My.Computer.Network.DownloadFile("http://www.meinewebsite.de/download/download/modsname.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\modsname.txt")
    161. Dim sr As New StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\LauncherArma\modsname.txt")
    162. While sr.Peek <> -1
    163. ligne = sr.ReadLine()
    164. My.Computer.FileSystem.CopyDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\LauncherArma\" & ligne, directory & "\" & ligne, True)
    165. End While
    166. PictureBox1.Visible = True
    167. FlatButton6.Visible = False
    168. FlatProgressBar1.Visible = False
    169. FlatLabel1.Visible = False
    170. FlatLabel2.Visible = False
    171. FlatLabel3.Visible = False
    172. End Sub
    173. End Class

    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Die Routine ist aber die Selbe.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ach ja? Willst Du also lieber ins Verderben rennen und eine riesige Sicherheitslücke einbauen? Damit könntest Du Dir einen Haufen Probleme einfangen, wenn Dein Programm der Verteiler von Malware ist. Sei froh, dass Du solche Hinweise bekommst. ;)
    Ich würde Dir zum System raten, denn sorry, aber der Code ist nur so von Fehlern übersäht und unsauber gecoded, was sehr sehr leicht zu Abstürzen führt (Option Strict Off etc.).

    Damit hättest Du eine automatisierte und sichere Lösung.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wie meinst Du das?
    Ich meine ja nur, denn dann sparst Du Dir den Aufwand und bist gut unterwegs. Sagt ja niemand, dass man es nicht machen soll, das schon, aber richtig.
    Das hat btw mit Anfänger nichts zu tun, so einen Tipp bekommt jeder, wenn sowas der Fall sein sollte.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Nein, lies Dir dem verlinkten Thread mal durch.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    patcher für ein game sollte man heutzutage sowieso nicht mehr selber bauen wenn man nicht der entwickler des games ist!!!
    diese arbeit übernimmt der publisher des games!
    beispiele die automatisch games updaten/patchen sind
    Steam,origin,games for windoof live,gamespy,ubinet,voobly,...
    wieso sich also einen patcher bauen wenn die meisten games das sowieso schon anbieten? versteh ich nit...
    @VincentTB
    windoof.org/ <<< willst du jetz zu mir sagen das ich windoof nicht mehr sagen darf? fängste jetz genau so an wie die politiker? sagste auch das ichn nazi bin wenn ich lügenpresse sage?
    wieso spammst du sinnlose beiträge die dem TE nicht weiterhelfen?

    @Vacarian
    was genau soll denn der patcher machen? wieso findet er die version.txt nicht mehr? was spricht dagegen den original patcher zu benutzen wenn es diesen gibt?
    Ich würde einfach nur gerne wissen wie ich den patcher mit dem updatesystem verbinden kann das war auch schon alles und das streiten ob mann nun windoof sagt oder nicht ist doch Jacke wie Hose hilft mir auch net weiter.....
    Leider ist das updatesystem für mich Neuland ich freue mich über jegliche Informationen die ihr mir geben könntet

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Vacarian“ ()

    ich hab mir den code nicht genauer angekuckt aber ich finde das hier

    VB.NET-Quellcode

    1. http://www.meinewebsite.de/download/download/version.txt

    dir ist schon bewusst das du den code bzw die website anpassen musst?
    ist es vllt so das du eine eigene website brauchst auf diese du die dateien hochlädst und das programm diese runterläd?
    gibt es für dne patcher auch eine doku?