Utilisateur du script SelfDelete découvert grâce à Tlem, je me suis aperçu qu'il ne remplissait pas ses fonctions dés qu'un utilisateur où le titre du script avait un accent. J'ai réussi à contourner ce problème avec quelques modifications.
Code original :
Code : Tout sélectionner
_SelfDelete()
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
Code : Tout sélectionner
#include <Process.au3> ;Commande _RunDOS
SelfDelete()
Func SelfDelete($iDelay = 0)
_RunDOS("echo " & @ScriptFullPath & ">" & @TempDir & "\Chemin_Appli.txt")
$Chemin_Appli = FileOpen(@TempDir & "\Chemin_Appli.txt", 0)
Local $sCmdFile
FileDelete(@TempDir & "\scratch.bat")
$sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
& ':loop' & @CRLF _
& 'del "' & FileReadLine($Chemin_Appli, 1) & '"' & @CRLF _
& 'if exist "' & FileReadLine($Chemin_Appli, 1) & '" goto loop' & @CRLF _
& 'del ' & @TempDir & '\scratch.bat'
FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
FileClose($Chemin_Appli)
FileDelete(@TempDir & "\Chemin_Appli.txt")
Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)
EndFunc ;==>SelfDelete