Hi
Manchmal will man ein Programm nach dem Ausführen löschen (z.B. einen Updater). Wenn man IO.File.Delete(Windows.Forms.Application.ExecutablePath) verwendet funktioniert das nicht, weil das Programm ja noch läuft. Dazu muss folgender Code im ApplicationEvents stehen:
Man kann die Datei auch im ApplicationData-Pfad erstellen:
Gruß
~blaze~
Manchmal will man ein Programm nach dem Ausführen löschen (z.B. einen Updater). Wenn man IO.File.Delete(Windows.Forms.Application.ExecutablePath) verwendet funktioniert das nicht, weil das Programm ja noch läuft. Dazu muss folgender Code im ApplicationEvents stehen:
VB.NET-Quellcode
- Private Sub MyApplication_Shutdown(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Shutdown
- Using srm As New IO.StreamWriter(System.Windows.Forms.Application.StartupPath & "\unistall.bat")
- With srm
- .WriteLine("@ECHO Datei """ & IO.Path.GetFileName(System.Windows.Forms.Application.ExecutablePath) & """ wird entfernt...")
- .WriteLine("@CD /D %~d0%~p0")
- .WriteLine("@ERASE /Q /F """ & IO.Path.GetFileName(System.Windows.Forms.Application.ExecutablePath) & """")
- .WriteLine("@ECHO Vorgang abgeschlossen.")
- .WriteLine("@ERASE /Q /F unistall.bat")
- End With
- End Using
- Process.Start(System.Windows.Forms.Application.StartupPath & "\unistall.bat")
- End Sub
Man kann die Datei auch im ApplicationData-Pfad erstellen:
VB.NET-Quellcode
- Private Sub MyApplication_Closed(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Shutdown
- Using srm As New IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & My.Application.Info.CompanyName & "\unistall.bat")
- With srm
- .WriteLine("@ECHO Datei """ & IO.Path.GetFileName(System.Windows.Forms.Application.ExecutablePath) & """ wird entfernt...")
- .WriteLine("@CD /D " & Windows.Forms.Application.StartupPath)
- .WriteLine("@ERASE /Q /F """ & IO.Path.GetFileName(System.Windows.Forms.Application.ExecutablePath) & """")
- .WriteLine("@ECHO Vorgang abgeschlossen.")
- .WriteLine("@ERASE /Q /F unistall.bat")
- End With
- End Using
- Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & My.Application.Info.CompanyName & "\unistall.bat")
- End Sub
Gruß
~blaze~