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 :

Code : Tout sélectionner

MsgBox(0, "", "Fini !")

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