[R] Boucle de clic sur bouton existant ...

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

[R] Boucle de clic sur bouton existant ...

#1

Message par Yoyo86220 »

Bonsoir à tous,

Voilà,
Donc j'ai un petit probleme, c'est pour l'automatisation d'installation d'un logiciel... je dois attendre que l'installation doit etre fini pour que je puisse cliquer sur terminer je ne peu pas utilisé winwaitactive car c'est tjrs la mm fenêtre... je voudrai qu'il y est une boucle qui clic tjrs sur le bouton en question jusqua temp qu'il n'existe plus comment fair ?

ou une boucle du style si ce bouton exist cliquer et quitter la boucle temp que le bouton n'existe pas ne pas quitter la boucle...

j'esper que vous m'avez un peu compri merci de m'aider...
Modifié en dernier par Yoyo86220 le jeu. 30 oct. 2008 20:24, modifié 2 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Boucle de clic sur bouton existant ...

#2

Message par sylvanie »

Bonsoir,

1) récupérer l'id du bouton en question qui apparaît à la fin via Au3info

2) utiliser une boucle basée sur guictrlgetstate et la constante $GUI_SHOW qui indique si le bouton est visible.

cf un petit exple avec une gui rapide :
► Afficher le texte
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [..] Boucle de clic sur bouton existant ...

#3

Message par Yoyo86220 »

Je ne comprends pas bien l'exemple est t'il possible que vous me montrez avc 2 scripts différent un ou le bouton va aparaitre et l'autre qui doi cliquer sur le bouton dès sont arrivé...
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Boucle de clic sur bouton existant ...

#4

Message par sylvanie »

On va procéder autrement car le fait de spliter en 2 programme ne changera pas des masses l'affaire : quelles sont les lignes non comprises ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [..] Boucle de clic sur bouton existant ...

#5

Message par Yoyo86220 »

voila ce que je fais moi...

Code : Tout sélectionner

While 1
    If BitAND(GUICtrlGetState(4015),$GUI_SHOW) Then ;<-- 4015 est l'ID du bouton
        ControlClick("Adobe Photoshop CS2 - Installation","",4015)
        ControlClick("Adobe Photoshop CS2 - Installation","",2003)
        Exitloop
    EndIf
WEnd
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Boucle de clic sur bouton existant ...

#6

Message par sylvanie »

ça a l'air pas mal,
je metterait une tempo, sleep(100) entre les 2 controlclick

si ça ne marche toujours pas, il faudra strocker les retours de guictrlclick pour les consulter après via un msgbox ou un consolewrite :
► Afficher le texte
Par contre, tu as bien vérifié que d'un lancement à l'autre de l'exe, photoshop ici, les id des bouton sont toujours les mêmes ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [..] Boucle de clic sur bouton existant ...

#7

Message par Yoyo86220 »

oui ce sont tjrs les mm... mais il y a un truc qui me chiffonne il n'y a pas besoin de metre le titre de l'apli sur la quel on doit chercher? du mm style que "ControlClick"... ? car là ça ve dire que adméton qu'il est un autre programme d'ouvert avc les mm ID... hum... sa ne marchera point ! non ?
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [..] Boucle de clic sur bouton existant ...

#8

Message par Yoyo86220 »

j'ai trouvé une autre solution je pense...

Code : Tout sélectionner

While 1
ControlClick("Adobe Photoshop CS2 - Installation","",4015)
ControlClick("Adobe Photoshop CS2 - Installation","",2003)
If [color=#4000FF]"Adobe Photoshop CS2 - Installation" n'est pas existante[/color] Then Exitloop
WEnd
esque ceci serai possible ?
enfin c'est sur que ça marche apres il me faut juste la commande qui représente ceci :
"Adobe Photoshop CS2 - Installation" n'est pas existante
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Boucle de clic sur bouton existant ...

#9

Message par sylvanie »

Yoyo86220 a écrit :oui ce sont tjrs les mm... mais il y a un truc qui me chiffonne il n'y a pas besoin de metre le titre de l'apli sur la quel on doit chercher? du mm style que "ControlClick"... ? car là ça ve dire que adméton qu'il est un autre programme d'ouvert avc les mm ID... hum... sa ne marchera point ! non ?
Les ID passez ici sont relatifs à une fenêtre. Donc effectivement, plusieurs fenêtres peuvent avoir des contrôles avec même ID, puisque c'est relatif. les Winhandle par contre sont unique, mais comme on ne va pas changer les prototypes des fonctions, le passage du titre de la fenêtre est obligatoire, même si on le résume à "", mais là c'est risqué en terme de résultat

Par contre, que retournent coomme valeur les controleclick (1=ok, 0 = NOK) ? ça nous permettrai de savoir si le click a eu vraiment lieu

Code : Tout sélectionner

If "Adobe Photoshop CS2 - Installation" n'est pas existante Then Exitloop
qu'est est sensé être caché derrière ceci :
- 1 titre de fenêtre
- 1 label dans la fenêtre
- autres ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [R] Boucle de clic sur bouton existant ...

#10

Message par BeCool »

Je suis débutant, donc pas sur que ça marche (je dis peut être n'apporte quoi), mais as-tu essayé avec:

Code : Tout sélectionner

If Not WinActive ("blablabla") Then WinActivate ("blablabla")
WinWaitActive("blablabla")
Je penses que ça devrait aller.
Répondre