Page 1 sur 1

Autoit

Posté : mar. 5 févr. 2019 10:35
par g3n-h@ckm@n
Salut

je m'amusais à lire la partie prog et je me permets de détérrer un vieux sujet ^^

post7304.html#p7304
Code : Tout sélectionner
If FileExists(@UserProfileDir "\desktop\2.txt") Then
   FileDelete(@UserProfileDir "\desktop\2.txt")
Else
   MsgBox(0, "Erreur", "2.txt non supprimé")
EndIf
donc si le fichier n'existe pas , il y'a message comme quoi il n'est pas supprimé ? ptdr !!!! comment peut-on laisser de telles ignominies sur un forum ? ca m 'étonne que personne n'ait apporté de correction depuis le temps ^^

le code réel le plus juste est
Code : Tout sélectionner
$sFile = @UserProfileDir "\desktop\2.txt"
If FileExists($sFile) Then
      If  Not FileDelete($sFile) Then
          MsgBox(0, "Erreur", $sFile & " non supprimé")
      Endif
EndIf
======

à titre info : _ProcessListProperties permet en utilisant bien la fonction , de récupérer le processus parent et de le stopper pour permettre la suppression du fichier avec le code adéquat ( ProcessClose() )

donc ProcessClose("PID du Processus parent" ca evitera les blue screen si le nom du processus parent est un nom de processus vital par exemple csrss.exe ou winlogon.exe ou smss.exe dans %appdata%) , puis FileDelete(fichier en question)

voir du coté de Permissions.au3 pour un accès avec les droits les plus puissants sur un fichier bien plus puissant que TakeOwnership de windows ou SetACL , avec ces fonctions on peut même supprimer des fichiers systeme après leurs avoir enlevé leurs attributs même s'ils sont protégés par windows.(à utiliser avec un maximum de prudence)

suivant quoi il faut utiliser ServiceControl.au3 dans le cas où le processus parent est un service _StopService('', $sServiceName)