[R] Savoir si execution terminé

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ennery
Niveau 1
Niveau 1
Messages : 10
Enregistré le : mar. 05 févr. 2008 14:19
Status : Hors ligne

[R] Savoir si execution terminé

#1

Message 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.
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

Re: [..] Savoir si execution terminé

#2

Message par eln »

Bonjour

Une petite MsgBox :

Code : Tout sélectionner

MsgBox(0, "", "Fini !")
Débutant, pas taper !
ennery
Niveau 1
Niveau 1
Messages : 10
Enregistré le : mar. 05 févr. 2008 14:19
Status : Hors ligne

Re: [..] Savoir si execution terminé

#3

Message par ennery »

salut,

Mon probleme est justement que si je met une box elle arrive de suite alors que les taches tournent encore.
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

Re: [..] Savoir si execution terminé

#4

Message par eln »

Peut-être une bétise mais avec Runwait cela ne fonctionne pas ?
Débutant, pas taper !
ennery
Niveau 1
Niveau 1
Messages : 10
Enregistré le : mar. 05 févr. 2008 14:19
Status : Hors ligne

Re: [..] Savoir si execution terminé

#5

Message par ennery »

runwait quoi aussi ?
puisque tout s'execute dans la même fenetre (caché)

++
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

Re: [..] Savoir si execution terminé

#6

Message 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))
Débutant, pas taper !
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Savoir si execution terminé

#7

Message 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))
ennery
Niveau 1
Niveau 1
Messages : 10
Enregistré le : mar. 05 févr. 2008 14:19
Status : Hors ligne

Re: [..] Savoir si execution terminé

#8

Message 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
Répondre