Page 1 sur 1
[R] Savoir si execution terminé
Posté : mar. 05 févr. 2008 17:36
par ennery
bonjour,
je debute et m'inspire de scripts existant. j'aimerai connaitre la méthode pour savoir si toutes les taches suivantes sont terminées.
Code : Tout sélectionner
$hPrDiskPart = Run("diskpart.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
StdinWrite($hPrDiskPart, "Select disk 0" & @CRLF)
StdinWrite($hPrDiskPart, "clean" & @CRLF)
StdinWrite($hPrDiskPart, "create partition primary size=26000" & @CRLF)
StdinWrite($hPrDiskPart, "create partition primary" & @CRLF)
StdinWrite($hPrDiskPart, "assign letter=v" & @CRLF)
StdinWrite($hPrDiskPart, "format FS=NTFS LABEL=""DATAS"" QUICK" & @CRLF)
StdinWrite($hPrDiskPart, "select partition 1" & @CRLF)
StdinWrite($hPrDiskPart, "assign letter=u" & @CRLF)
StdinWrite($hPrDiskPart, "format FS=NTFS LABEL=""SYSTEM"" QUICK" & @CRLF)
StdinWrite($hPrDiskPart, "active" & @CRLF)
Merci de votre aide.
Re: [..] Savoir si execution terminé
Posté : mer. 06 févr. 2008 08:29
par eln
Bonjour
Une petite MsgBox :
Re: [..] Savoir si execution terminé
Posté : jeu. 07 févr. 2008 08:27
par ennery
salut,
Mon probleme est justement que si je met une box elle arrive de suite alors que les taches tournent encore.
Re: [..] Savoir si execution terminé
Posté : jeu. 07 févr. 2008 08:43
par eln
Peut-être une bétise mais avec Runwait cela ne fonctionne pas ?
Re: [..] Savoir si execution terminé
Posté : jeu. 07 févr. 2008 09:34
par ennery
runwait quoi aussi ?
puisque tout s'execute dans la même fenetre (caché)
++
Re: [..] Savoir si execution terminé
Posté : jeu. 07 févr. 2008 13:46
par eln
Excuse si je dis des bêtises mais je débute aussi.
Peut-être ceci :
Code : Tout sélectionner
#include <Constants.au3>
$hPrDiskPart = Run("diskpart.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
StdinWrite($hPrDiskPart, "Select disk 0" & @CRLF & "clean" & @CRLF & "create partition primary size=26000" & @CRLF & "create partition primary" & @CRLF & "assign letter=v" & @CRLF & "format FS=NTFS LABEL=""DATAS"" QUICK" & @CRLF & "select partition 1" & @CRLF & "assign letter=u" & @CRLF & "format FS=NTFS LABEL=""SYSTEM"" QUICK" & @CRLF & "active" & @CRLF)
Sleep($hPrDiskPart)
MsgBox(0, "Debug", StdoutRead($hPrDiskPart))
Re: [..] Savoir si execution terminé
Posté : jeu. 07 févr. 2008 14:09
par ani
Bonjour eln et ennery
@eln l'utilisation de runwait n'est pas possible (voir aide)
Faire un sleep (temp d'attente) sur la structure n'est pas possible non plus, il faut du chiffre genre sleep(1000) .
@ennery il te manque juste la fermeture du stream.
Je n'est pas testé le script ne sachant pas ce que l'utilitaire diskpart.exe fait exactement, je lis l'aide de celui-ci.
Code : Tout sélectionner
#include <Constants.au3>
$hPrDiskPart = Run("diskpart.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
StdinWrite($hPrDiskPart, "Select disk 0" & @CRLF & "clean" & @CRLF & "create partition primary size=26000" & @CRLF & "create partition primary" & @CRLF & "assign letter=v" & @CRLF & "format FS=NTFS LABEL=""DATAS"" QUICK" & @CRLF & "select partition 1" & @CRLF & "assign letter=u" & @CRLF & "format FS=NTFS LABEL=""SYSTEM"" QUICK" & @CRLF & "active" & @CRLF)
;on appel l'argument de fermeture du stream (ecriture dos)
StdinWrite($hPrDiskPart)
MsgBox(0, "Debug", StdoutRead($hPrDiskPart))
Re: [..] Savoir si execution terminé
Posté : ven. 08 févr. 2008 01:10
par ennery
merci ani,
c'est exactement ce qu'il me fallait.
grace a ca je fais la capture de texte dans un while, ce qui me permet de ne pas poursuivre tant que je n'ai pas le texte resultant de la Tache "active".
Code : Tout sélectionner
While 1
If StringInStr(StdoutRead($hPrDiskPart),"mon texte") Then ExitLoop
WEnd
Sont fort les boss ici
merci aussi a tout les participants