Voilà mon soucis, je dois lancer un processus et attendre sa sortie afin de reprendre le scripte, mais dans mon cas ce processus se ferme juste apres lancement et se relance automatiquement, hors pour autoit la premiere sortie du processus le fait executer la suite de mon scripte, je souhaiterais donc pouvoir y inclure une boucle à la suite de "Run" qui dit en gros: si le processus se ferme, le scripte attend 1/2 seconde voir moins puis si pas de processus continut le scripte et si processus à nouveau en cours se remet en attende de la fermeture du processus. Voilà, s'il vous faut d'autres renseignement n'hézitez pas, j'espere avoir été clair...
Je vous met ici mon bout de code de la partie lancement qui fonctionnerait tel quel si le logiciel en question ne demanderait pas de redemarrage ou autre. Je souhaiterais donc pouvoir inclure cette boucle à tout mes scriptes fesant appel à des logiciels utilisant des redemarrage ou autre.
Code : Tout sélectionner
#NoTrayIcon
;$APPDIR = "Chemin de mon application"
;$PROCES = "processus de l' application"
; partie du code d'avant lancement.
Run($APPDIR & $PROCES)
ProcessSetPriority($PROCES, 4)
ProcessWaitClose($PROCES)
Sleep(100)
; Partie du code à executer apres la fermeture du processus.
cdt
REEDIT, je joint une autre demande tres proche ne necessitant pas de nouveau poste, et continut donc celui-ci, voir plus-bas:
En vous remerciant d'avance, cdtSteph a écrit :Salut,
suite à ma premiere demande j'en viens avec une autre tres proche, voilà mon code:En faite le processus principal $PROCES lance d'autres proces ($P1, $P2, $P3) et je souhaite qu'on sorte de la boucle lorsque plus aucun de ces processus ne soit actifs, mon code fonctionne mais parfois le scripte continut sans que je ne sache reelement pourquoi, et c'est pour cela que je viens chercher de l'aide à nouveau.Code : Tout sélectionner
$PROCES = "Integrator.exe" $APPDIR = "chemin de mon appli" Run($APPDIR & $PROCES) ProcessSetPriority($PROCES, 4) While 1 $P1 = "MemOptimizer.exe" $P2 = "OneClick.exe" $P3 = "DriveDefrag.exe" While 1 If ProcessExists($PROCES) = 0 Then ExitLoop ProcessWaitClose($PROCES) Sleep(800) ;ou plus WEnd While 1 If ProcessExists($P1) = 0 Then ExitLoop ProcessWaitClose($P1) Sleep(800) ;ou plus WEnd While 1 If ProcessExists($P2) = 0 Then ExitLoop ProcessWaitClose($P2) Sleep(800) ;ou plus WEnd While 1 If ProcessExists($P3) = 0 Then ExitLoop ProcessWaitClose($P3) Sleep(800) ;ou plus WEnd $ALLP = ProcessExists($PROCES And $P1 And $P2 And $P3) If $ALLP = 0 Then ExitLoop WEnd Sleep(100)
Stéphane




