Aide et conseils concernant AutoIt et ses outils.
bilbo
Niveau 1
Messages : 13 Enregistré le : jeu. 18 mars 2010 14:45
Status :
Hors ligne
#1
Message
par bilbo » ven. 09 avr. 2010 10:50
Bonjour,
je n'arrive pas à trouver le moyen avec autoit d'attendre qu'une action soit réalisée avant de continuer.
Exemple 1:
je copie les fichiers d'un repertoire vers un autre et je dois attendre que tout les fichiers soit présent avant de continuer.
Exemple 2:
Je transforme des fichiers .txt en .pdf avec pdfcreator, et je dois attendre que tout les fichiers soit créés avant de continuer.
Je suppose que ce n'est pas bien compliqué, mais je sèche la desssus.
Merci d'avance.
pop45
Membre émérite
Messages : 251 Enregistré le : dim. 30 août 2009 16:18
Status :
Hors ligne
#2
Message
par pop45 » ven. 09 avr. 2010 10:57
Do..... until.....
Grossièrement traduit sa veut dire fait..... jusqu'a ce que ....
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
bilbo
Niveau 1
Messages : 13 Enregistré le : jeu. 18 mars 2010 14:45
Status :
Hors ligne
#3
Message
par bilbo » ven. 09 avr. 2010 11:09
Merci pop45, j'avais testé cette boucle sans succés.
Avec le code ci dessous, c'est le délire, Plein de fenetres sont ouvertes.
► Afficher le texte
do
Run($rep_dest & "pdftk.exe *.pdf cat output archive.pdf", $rep_dest)
until (FileExists($rep_dest & "archive.pdf"))
en fait je voudrait tester la présence du fichier archive.pdf pour continuer le traitement de celui-ci.
GaRydelaMer
Niveau 7
Messages : 450 Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status :
Hors ligne
#4
Message
par GaRydelaMer » ven. 09 avr. 2010 11:15
Bonjour,
et pourquoi tu utilise pas RunWait
comme son nom l'indique en anglais il exécute et attend la fin de l'exécution. Ensuite tu finis le traitement.
Car dans l'autre solution, le fichier est vite créer mais pas encore "rempli" donc si tu dois par exemple le copier ailleurs il sera pas complet.
bilbo
Niveau 1
Messages : 13 Enregistré le : jeu. 18 mars 2010 14:45
Status :
Hors ligne
#5
Message
par bilbo » ven. 09 avr. 2010 11:29
Merci GaRydelaMer,
ça fonctionne trés bien pour le code précédent, mais pas pour celui là.
► Afficher le texte
Runwait(@ProgramFilesDir & '\Adobe\Reader 9.0\Reader\AcroRd32.exe /N /T "' & $Parchive & '" "' & $pdffin & '"', '', @SW_HIDE)
Reader ne se ferme pas automatiquement en fin de tache et le programme est en attente.
Dés que l'on ferme mauellement Reader, ça redemarre.
Je n'ai toujours pas de soluce pour mon exemple 1 :
Dexxpo
Niveau 3
Messages : 31 Enregistré le : dim. 07 juin 2009 15:31
Status :
Hors ligne
#6
Message
par Dexxpo » ven. 09 avr. 2010 13:22
Salut,
Pour l'exemple 1 c'est simple.
Runwait(@comspec & " /c xcopy ""source"", ""destination""")
Là tu vas exécuter xcopy à partir de l'invite de commande, et la méthode xcopy attend la fin de la copie.
/!\ Avec cette méthode fait attention au guillements
A toi de t'entrainer dans l'invite de commande avec xcopy /?
Après pour Adobe Reader j'imagine que c'est pour une installation... il faut que tu trouves le commutateur qui permet de faire une installation automatisé ou silencieuse. Là ton problème doit surment provenir d'une attente de réponse avec l'interface caché...
Serge63
Niveau 4
Messages : 71 Enregistré le : lun. 22 juin 2009 14:54
Localisation : Clermont-ferrand
Status :
Hors ligne
#7
Message
par Serge63 » ven. 09 avr. 2010 14:03
essaie plutot quelque chose comme ça :
Code : Tout sélectionner
Run($rep_dest & "pdftk.exe *.pdf cat output archive.pdf", $rep_dest)
do
sleep(500)
until (FileExists($rep_dest & "archive.pdf"))