Public Class cUpdateUpdater Public Function UpdateUpdater() As Boolean If System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory & "upd.tmp") Then Return True If Not My.Computer.FileSystem.DirectoryExists("F:\Programme\AVISO_INSTALL\") Then MsgBox("ERROR_UPDATE_UPDATER_02: Updater-Daten existieren nicht.", MsgBoxStyle.Critical, "ERROR") Else 'For i As Integer = 1 To 3 Step 1 If Not DoesProcessExists("AVISOUPDATER") Then delFiles() FileCopier() If Not System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory & "AVISOUPDATER.exe") Then MsgBox("ERROR_UPDATE_UPDATER_03: AVISOUPDATER.exe konnte nicht gestartet werden.", MsgBoxStyle.Critical, "ERROR") Return False End If System.IO.File.Create(AppDomain.CurrentDomain.BaseDirectory & "upd.tmp") MsgBox("Das Programm muss neu gestartet werden.") Application.Restart() ' Application.Exit() ' Process.Start("AVISOUPDATER.exe") 'frmAnmeldung.UpdateAVISO() End If ' Threading.Thread.Sleep(1000) ' Next MsgBox("ERROR_UPDATE_UPDATER_01: Update konnte nicht durchgeführt werden. AVISOUPDATER.exe nicht beendet?", MsgBoxStyle.Critical, "ERROR") End If Return False End Function Private Sub FileCopier() For Each file As String In IO.Directory.GetFiles("F:\Programme\AVISO_INSTALL\") ' Ermittelt alle Dateien des Ordners IO.File.Copy(file, AppDomain.CurrentDomain.BaseDirectory & cut_file(file), True) ' Kopiert die Dateien Next Next For Each file As String In IO.Directory.GetDirectories("F:\Programme\AVISO_INSTALL\") ' Ermittelt alle Unterordner des Ordners My.Computer.FileSystem.CopyDirectory(file, AppDomain.CurrentDomain.BaseDirectory & cut_file(file), True) Next End Sub Private Function cut_file(ByVal file As String) As String ' Funktion zum Entfernen der Backslashs / Ordner While file.Contains("\") file = file.Remove(0, 1) End While Return file End Function While file.Contains("\") file = file.Remove(0, 1) End While Return file End Function Private Sub delFiles() Try For Each file As String In IO.Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory) ' Ermittelt alle Dateien des Ordners If cut_file(file).Contains("AVISOUPDATER") = True Then My.Computer.FileSystem.DeleteFile(file) 'Löscht den Updater End If Next Catch ex As Exception MsgBox("ERROR_UPDATE_UPDATER_04: Fehler beim Löschen", MsgBoxStyle.Critical, "ERROR") Application.Exit() End Try End Sub Private Function DoesProcessExists(ByVal PName As String) As Boolean For Each p As Process In System.Diagnostics.Process.GetProcessesByName(PName) If p.StartInfo.UserName = Environment.UserName Then Return True End If Next Return False End Function End Class