Page 1 sur 1

Mystere avec controlclick

Posté : ven. 06 sept. 2019 13:09
par Tragix
Bonjour,
Voilà je suis en stage en entreprise et je dois installer un programme qui ne supporte pas l'installation silencieuse sur beaucoup de machine.
Je me lance donc dans la création d'un script via AutoIt pour alléger ma tâche.
Or une des premières fenêtres ne peut être atteinte via les touches clavier je suis donc obligé d'utiliser "controlclick"
mais rien ne se passe.
voici mon code pour le moment.
; signalement du début d'installation
TrayTip("installation de ciel", "début de l'installation de ciel", 1000)
; pause
Sleep(3000)
; lancement du programme d'installation
ShellExecute("ciel2018.exe")
sleep(5000)
; ciblage des fenetres pour action
WinWaitActive("Installation de Pack Enseignants", "Bienvenue dans l'assistant d'installation de Pack Enseignants.")
;lancement de l'installation
ControlClick("Installation du Pack Enseignants", "&Suivant >", "[CLASS:Button; INSTANCE:2]")

Je précise qu'il y a un #requireAdmin
Bien à vous.

Re: Mystere avec controlclick

Posté : ven. 06 sept. 2019 16:20
par scorp84
Bonjour Tragix,

Je vous conseille d'utiliser l'utilitaire fourni avec Autoit (Au3Info.Exe ou Autoit Window Info) si ce n'est pas fait.

Pour la seconde partie de ControlClick ou winwait active, je renseigne rarement le texte affiché car j'ai déjà eu des surprises,je mets "".

Voyez peut être aussi du côté de WinTitleMatchMode.

En espérant avoir pu vous aider.

Cordialement.

BM

Re: Mystere avec controlclick

Posté : ven. 06 sept. 2019 18:57
par walkson
Bonjour,
En plus de ces très bons conseils, je rajouterais de lire les retours des fonctions pour situer le problème (au moins dans la phase test) et de mettre le chemin complet du programme. Exemple:
$Pid = ShellExecute("C:\Users\moi\Desktop\ciel2018.exe");chemin complet
ConsoleWrite($Pid & @CR) ;Retourne le PID du processus sinon 0
sleep(5000)
; ciblage des fenetres pour action
$hHandle = WinWaitActive("Installation de Pack Enseignants", "");Retourne le handle de la fenêtre demandée sinon 0
ConsoleWrite($hHandle & @CR)
;lancement de l'installation
$clic = ControlClick($hHandle,"", "[CLASS:Button; INSTANCE:2]"); Succès:  Retourne 1.
$clic = ControlClick($hHandle,"", "Button2"); autre solution
ConsoleWrite($clic & @CR)
Il n'y a pas de secret, il faut tester encore et encore :mrgreen:
Ne négligez pas les options
Opt("WinTitleMatchMode", 1) ;1=début, 2=sous-chaîne, 3=exact, 4=avancé, -1 à -4=NOCASE
Opt("WinDetectHiddenText", 0) ;0=ne détecte pas, 1=détecte

Re: Mystere avec controlclick

Posté : ven. 06 sept. 2019 20:52
par mikell
Personnellement (si ce qui a été dit avant ne marche pas) plutôt que WinWaitActive j'essaierais WinWait + WinActivate
Des fois que ... :roll: