65 lines
3.2 KiB
VB.net
65 lines
3.2 KiB
VB.net
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
|