[R] Suppression automatique d'un script.au3 quand il quitte
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- XenaMelody
- Niveau 4

- Messages : 67
- Enregistré le : mar. 25 oct. 2011 00:45
- Status : Hors ligne
[R] Suppression automatique d'un script.au3 quand il quitte
Bonjour !
J'ai un autre problème. Comment faire pour qu'un script se supprime automatiquement sans qu'un autre script qui s'en charge ?
J'ai essayer FileDelete(@ScriptFullPath) mais ça ne marche pas. Suis-je obligé d'utiliser une ressource externe, un autre script ? Et si oui, comment faire pour savoir si ce dernier a fini ( dans tout types de script : script ne faisant pas appelle à une fenêtre, plusieurs scripts lancés en même temps )
Merci d'avance !
J'ai un autre problème. Comment faire pour qu'un script se supprime automatiquement sans qu'un autre script qui s'en charge ?
J'ai essayer FileDelete(@ScriptFullPath) mais ça ne marche pas. Suis-je obligé d'utiliser une ressource externe, un autre script ? Et si oui, comment faire pour savoir si ce dernier a fini ( dans tout types de script : script ne faisant pas appelle à une fenêtre, plusieurs scripts lancés en même temps )
Merci d'avance !
Modifié en dernier par XenaMelody le jeu. 27 oct. 2011 13:47, modifié 1 fois.
XenaMelody
L'esprit sert à tout, mais il ne mène à rien.
Talleyrand
Talleyrand
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Suppression automatique d'un script.au3 quand il qu
Bonjour, on a deux exple de fonctions "suicide" ici
viewtopic.php?f=3&t=228
viewtopic.php?f=3&t=228
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
- XenaMelody
- Niveau 4

- Messages : 67
- Enregistré le : mar. 25 oct. 2011 00:45
- Status : Hors ligne
Re: [..] Suppression automatique d'un script.au3 quand il qu
Merci, testé et approuvé !
J'ai récuperé cette fonction mais j'ai du mal à la comprendre
. $sCmdFile c'est du batch je suppose mais il supprime le fichier scratch.bat ensuite il le lance ? J'ai du mal a comprendre cette ordre
...
Code : Tout sélectionner
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
FileDelete(@TempDir & "\scratch.bat")
FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)XenaMelody
L'esprit sert à tout, mais il ne mène à rien.
Talleyrand
Talleyrand
-
GaRydelaMer
- Niveau 7

- Messages : 450
- Enregistré le : mer. 18 mars 2009 22:12
- Localisation : Montpellier
- Status : Hors ligne
Re: [..] Suppression automatique d'un script.au3 quand il qu
C'est portant simple
FileDelete(@TempDir & "\scratch.bat")
FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)
FileDelete, efface le fichier pour être sur de lancer le bon genre tu as 2 scripts AutoIt qui vont se supprimer, afin d’être sur de vire le bon au moment de l'appel de la fonction dans 1 script
Filwrite, ici on va mettre le contenu de la variable $cmdFile le code du batch dans le fichier précédemment supprime donc on va le créer
Run, bin va exécuter le batch, dans une fenêtre "dos" masqué
Normalement le batch va se supprimer tout seul à la fin le 1er file delete c'est pour être sur zen cas de plantage pendant l’exécution du batch qui peu être plus ou moins long en fonction du ping
Dans le même style j'ai fait une fonction pour mettre à jour un script
Je dépose mes mise à jour sur un serveur au boulot, et a chaque lancement des scripts je vérifie la version
Si une mise à jour existe alors je lance cette fonction qui va mettre le programme à jour
FileDelete(@TempDir & "\scratch.bat")
FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)
FileDelete, efface le fichier pour être sur de lancer le bon genre tu as 2 scripts AutoIt qui vont se supprimer, afin d’être sur de vire le bon au moment de l'appel de la fonction dans 1 script
Filwrite, ici on va mettre le contenu de la variable $cmdFile le code du batch dans le fichier précédemment supprime donc on va le créer
Run, bin va exécuter le batch, dans une fenêtre "dos" masqué
Normalement le batch va se supprimer tout seul à la fin le 1er file delete c'est pour être sur zen cas de plantage pendant l’exécution du batch qui peu être plus ou moins long en fonction du ping
Dans le même style j'ai fait une fonction pour mettre à jour un script
Je dépose mes mise à jour sur un serveur au boulot, et a chaque lancement des scripts je vérifie la version
Si une mise à jour existe alors je lance cette fonction qui va mettre le programme à jour
Code : Tout sélectionner
Func _SelfUpdate($Source, $iDelay = 2, $FName = @ScriptName, $Reload = True)
Local $sCmdFile, $sFileName
$sFileName = @TempDir & "\SelfUpdate_" & $FName & ".bat"
If FileExists($sFileName) Then FileDelete($sFileName)
$sCmdFile = 'ping -n ' & $iDelay & ' 127.0.0.1 > nul' & @CRLF _
& ':loop' & @CRLF _
& 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
& 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
& 'copy "' & $Source & '" "' & @ScriptDir & '"' & @CRLF
If $Reload Then $sCmdFile &= @CRLF & '"' & @ScriptFullPath & '"' & @CRLF
$sCmdFile &= 'del ' & $sFileName
FileWrite($sFileName, $sCmdFile)
Run($sFileName, @TempDir, @SW_HIDE)
EndFunc ;==>_SelfUpdate
Func _Verif_Update($PathServeur)
Local $V_Local = FileGetVersion(@ScriptFullPath)
Local $V_Server = FileGetVersion($PathServeur)
If $V_Local < $V_Server Then
If MsgBox(4 + 32 + 262144, "Mise à jour", "Vous possédez la version: " & $V_Local & @LF & _
"Une version plus récente (" & $V_Server & ") va être installé.") = 6 Then
_SelfUpdate($PathServeur, 5)
Exit
EndIf
Else
MsgBox(0, "Mise à jour", "Vous possédez déjà la dernière version: " & $V_Local)
EndIf
EndFunc ;==>_Verif_Update
- XenaMelody
- Niveau 4

- Messages : 67
- Enregistré le : mar. 25 oct. 2011 00:45
- Status : Hors ligne
Re: [..] Suppression automatique d'un script.au3 quand il qu
Merci, j'ai compris pourquoi il faut mettre FileDelete() avant. Je passe en résolut.
XenaMelody
L'esprit sert à tout, mais il ne mène à rien.
Talleyrand
Talleyrand
Re: [R] Suppression automatique d'un script.au3 quand il qui
Je n'ai pas compris comment choisir le fichier à supprimer , on change scrath.bat , je vois pas
-
ani
- Niveau 11

- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Re: [R] Suppression automatique d'un script.au3 quand il qui
un auto destructeur ?
taper ceux-ci dans votre editeur,sauvegardé et excuté le
je vois pas pkoi le filedelete ne fonctionnerai pas
chaque fichier executer possede un identifiant:nomdu fichier,pid,thread
faut voir comment ton script est structuré boucle while ?
je trouve inutilie l'utilisation d'un bat (détruit deux fichier au lieu d'un seul) tant taper tout el code en bat ou vbs
taper ceux-ci dans votre editeur,sauvegardé et excuté le
Code : Tout sélectionner
MsgBox(32,"Destructeur", "effacement du fichier?")
If Not @compiled then FileDelete(@ScriptFullPath)chaque fichier executer possede un identifiant:nomdu fichier,pid,thread
faut voir comment ton script est structuré boucle while ?
je trouve inutilie l'utilisation d'un bat (détruit deux fichier au lieu d'un seul) tant taper tout el code en bat ou vbs
Re: [R] Suppression automatique d'un script.au3 quand il qui
En gros ce que je veut faire c'est :
Un programme appelé "kill "
Kill va télécharger un fichier avec inetget et quand il sera télécharger on le lance puis " kill " ce supprime une fois tout ça terminé
Un programme appelé "kill "
Kill va télécharger un fichier avec inetget et quand il sera télécharger on le lance puis " kill " ce supprime une fois tout ça terminé
- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Suppression automatique d'un script.au3 quand il qui
L'auto-effacement par FileDelete peut fonctionner dans la plupart des cas, mais il existe des cas ou cela ne fonctionne pas. Dans ce cas précis, la meilleurs solution est d'utiliser un programme extérieur (.bat) qui s'occupera de faire ce qu'il y a à faire le moment venu. Cherchez sur le forum US ou FR après SelfDelete.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

