Irgendwie will das nicht klappen, wenn ich den Ordner lösche ($Pfad) bleiben noch Unterverzeichnisse/Dateien über, obwohl eigentlich der Parameter (1) angegeben ist
Vielleicht ist ja auch nur ein Denkfehler drin?
Spoiler anzeigen
$Pfad = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Candela", "InstallLocation")
$Path = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Candela", "Programsdir")
ProcessClose("Candela.exe")
If FileExists(@TempDir & "\CandelaUI.exe") = 0 Then
FileCopy(@ScriptFullPath, @TempDir & "\CandelaUI.exe", 1)
Run(@TempDir & "\CandelaUI.exe")
Exit
Else
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Candela")
DirRemove($Path, 1)
DirRemove($Pfad, 1)
MsgBox(0, "Uninstall", "Successful")
Call("_SelfDelete")
EndIf
Func _SelfDelete($iDelay = 0)
Local $sCmdFile
FileDelete(@TempDir & "\scratch.bat")
$sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
& ':loop' & @CRLF _
& 'del "' & @ScriptFullPath & '"' & @CRLF _
& 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
& 'del ' & @TempDir & '\scratch.bat'
FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)
EndFunc