Dans le cadre d'une automatisation le plus gros problème est le temps de réponse de l'application concernée ...
déjà une bonne chose : c'est très bien de tester avec WinWaitActive si la fenêtre est active, seulement il arrive que cela ne suffise pas ... (la fenêtre reste la même donc est considérée comme active et elle n'a pas encore fini de se réafficher après avoir cliqué sur suivant)
les timer c'est une bonne solution, facile, pratique, seulement le jour ou le pc rame il faudrait que les valeurs soient plus élevées pour parer à toute éventualité .... alors comment faire !
hé bien c'est très simple, vous choisissez le nouveau bonux et c'est le mimi, le mimi, le miracle !
trêve de rire, il va falloir apprendre à déterminer de façon sûre si ce que l'on veut faire est possible ou non ...
la procédure est la suivante :
vérifier avec des fonctions de manipulation des controles que les controles que l'on veut manipuler existent bel et bien.
pour moi le plus sage est d'utiliser la fonction suivante :
Code : Tout sélectionner
ControlCommand ( "title", "text", controlID, "command" [, "option"] )
en l'appelant 2 fois, une fois avec la "command" = "IsVisible"
et une autre fois avec la "command" = "IsEnabled"
et dans les deux cas il faut que ça retourne 1, sinon c'est soit que le controle recherché est invisible ou n'est pas disponible .... donc inutile d'essayer le traficoter ....
=> nouvelle problématique : comment identifier un ou deux controles qui me permettront de savoir si je suis au bon stade de mon installeur (par exemple)
la réponse est toute bête : Avec AutoIt Window Info Tool (Ctrl + F6) on inspecte la fenêtre, et on choisit un ou deux controles sur lesquels on fera les tests ... si on veut que nos tests soient fiables, il faut trouver un ou deux controles dont le couple de propriétés [CLASS:NomDeLClasse; INSTANCE:999] n'apparaisse ni dans la page précédente ni dans la page suivante ....
Ainsi on peut être SÛR et CERTAIN que si le controle existe et qu'il est visible et disponible, alors on est bien dans la bonne fenêtre et on peut manipuler ce qu'on veut ^___^
voila ....ça serait ma démarche !
Sinon autre point : pour décocher des checkbox un moyen efficace c'est de donner le focus au controle et d'envoyer un espace avec Send("{SPACE}"), pour certains controles, le ControlClick ne fonctionne bien que si on donne en plus des coordonnées x et y exprimées à partir du coin supérieur gauche du controle ...
certains controles ne réagissent aux clics que dans certaines zones ..... !!!!