Auf die Idee mit der Verknüpfung von CreateProcess und dem Löschen der Datei wäre ich jetzt echt nicht gekommen. Danke für die Idee, werde eventuell in Kürze mal einen POC schreiben oder so. Arbeite mich atm wieder in die WinAPI Programmierung ein.
Druckbare Version
Auf die Idee mit der Verknüpfung von CreateProcess und dem Löschen der Datei wäre ich jetzt echt nicht gekommen. Danke für die Idee, werde eventuell in Kürze mal einen POC schreiben oder so. Arbeite mich atm wieder in die WinAPI Programmierung ein.
Ein Poc wäre das aber nicht, denn das gab es schon hundertfach ;)
Danke erstmal an alle
@BlackHook danke für den C&P hab ihn verstanden
Schleife ist vlt nicht ganz sinnvoll, weil sich der Prozess aufhängt, wenn er die Datei nicht löschen kann. Bin gewohnt "del" und nicht "erase" zu benutzen, ist aber glaub das selbe.
@BlackBerry ok, hab ich auch verstanden daher thx. Quasi per runPE eine Anwendung starten, welche die eigentliche Datei löscht. Da diese Methode jedoch um einiges aufwendiger ist, denk ich dass ich mich erstmal mit der relativ simplen batch datei methode zufrieden geben werde.
EDIT: hab verstanden warum ne Schleife sinn macht^^ alternative wäre die ping variante von Jut4h.tm
@Mofo
Batch dateien können sich selber löschen, weshalb es keine Leiche geben würde
nach 30 sekunden googlen gefunden ;)
Quelle: dotnet-snippets.deCode:Private Sub MyApplication_Shutdown(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Shutdown
Using srmStreamWriter As New IO.StreamWriter(System.Windows.Forms.Application.StartupPath & "\unistall.bat")
With srmStreamWriter
Dim files As ReadOnlyCollection(Of String)
files = My.Computer.FileSystem.GetFiles(My.Application.Info.DirectoryPath, FileIO.SearchOption.SearchAllSubDirectories, "*.*")
For Each f As Object In files
.WriteLine("@ECHO Datei """ & f.ToString & """ wird entfernt...")
.WriteLine("@CD /D %~d0%~p0")
.WriteLine("@ERASE /Q /F """ & f.ToString & """")
.WriteLine("@ECHO Vorgang abgeschlossen.")
Next
End With
End Using
Process.Start(System.Windows.Forms.Application.StartupPath & "\unistall.bat")
End Sub
Edit: musst ein .WriteLine("@echo off") unter for each ... setzen
MfG ~TheDarky