Page 1 sur 1

[..] Quitter automatiquement un script en Pause

Posté : mar. 22 déc. 2009 18:03
par domdom74
Bonsoir,

Voici mon code :

Code : Tout sélectionner

Run("C:\Program Files\Mozilla Thunderbird\thunderbird.exe")
WinWaitActive("Entrez votre mot de passe :")
Sleep(3000)
Send("{Tab 3}")
Sleep(1500)
Send("{ENTER}")
Sleep(1500)
Send("!o")
Sleep(1500)
Send("i")
Send("{ENTER}")
Sleep(1000)
Send("{Tab}")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
Send("{down 5}")
Sleep(1000)
Send("{Tab 2}")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
Send("C:\Profil\Departement.ldif")
Sleep(1000)
Send("!o")
#include<array.au3>
Dim $cord
While 1
    $cord = ControlGetPos("", "", "[CLASS:MozillaWindowClass; INSTANCE:3]")

 If IsArray($cord) Then
        Send ("{ENTER}")
    Sleep (1000)
            Send("!fq")
    Sleep (1000)

        EndIf

WEnd
Ce code, dont une partie m'a été donnée par Tlem, fonctionne très bien. Il a pour but de lancer Thunderbird, d'importer automatiquement un carnet d'adresses au format ldif, de générer un clic sur le bouton "Terminer" quand la fenêtre qui le contient apparaît, et enfin de fermer Thunderbird.

Jusque là, pas de problème, mais après avoir quitter Thunderbird..., le script reste en pause et ne se ferme pas automatiquement. Je suis obligé de cliquer sur Quitter dans le Systray. Cela n'est certes pas un gros effort, mais je voudrais que cela soit transparent pour l'utilisateur.

Il doit manquer quelque chose dans la boucle While ou une fonction supplémentaire forçant la clôture du script même s'il est en pause, mais mes recherches ne m'ont pas permis pour l'instant d'aboutir.

Aussi, fais-je appel à votre générosité.

Merci d'avance.

Dominique.

Re: [..] Quitter automatiquement un script en Pause

Posté : mar. 22 déc. 2009 18:14
par Tlem
Il vous manque le Exit après la derniere instruction ou pause.

Re: [..] Quitter automatiquement un script en Pause

Posté : mar. 22 déc. 2009 18:52
par domdom74
Hello Tlem,

Vous pensez bien que j''ai déjà cherché avec Exit. Mais les boucles While, je ne maîtrise pas vraiment...

Quand je le place après Wend : Résultat négatif :( (Le script n'est pas clos)

Quand je le place après EndIf : Résultat négatif :( (Le script est bien clos, mais l'action click sur le bouton Terminer ne s'exécute pas...)

Je ne sais pas trop où le placer l'exit... :?: , et je pense (mais je peux me tromper) que le problème vient du While 1 : c'est pas une boucle infinie ?

Merci de votre aide et aussi des solutions que vous apportez dans ce forum régulièrement.

Dominique.

Re: [..] Quitter automatiquement un script en Pause

Posté : mar. 22 déc. 2009 20:58
par Tlem
Tlem a écrit :Il vous manque le Exit après la derniere instruction ou pause.
Edit :
Voici la fin de votre code commenté pour comprendre son fonctionnement :
► Afficher le texte