ControlClick sur fenêtre graphique.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Barthandelus
Niveau 4
Niveau 4
Messages : 53
Enregistré le : mer. 02 janv. 2019 14:34
Status : Hors ligne

ControlClick sur fenêtre graphique.

#1

Message par Barthandelus »

Bonjour,

Je rencontre actuellement un problème avec l'usage de ControlClick que je n'arrive strictement pas à résoudre.

Je possède une supervision en prise en main à distance (TSE Only).
Je souhaiterais cliquer sur un bouton de refresh dans la fenêtre stream.

Actuellement, j'arrive à trouver la fenêtre et comme je n'ai pas accès aux control, j'ai opter pour des coordonnées. Malheureusement, le click ne fonctionne pas, et je dirais même qu'il fonctionne d'une manière totalement aléatoire.

Voici une partie de mon code de test :
While Not $stop
   WinWait($hwd, "") ; $hwd s'obitent via [TITLE:Titre de ma fenêtre] qui est fixe.
   Sleep(3500)

   $_windowPosition = SearchForWindow() ; Récupère juste la position X & Y de la fenêtre de stream.

        ; Valeurs arbitraire de test pour commencer
   $clickPosX = ($_windowPosition[0] + 100)
   $clickPosY = ($_windowPosition[1] + 100)

   ConsoleWrite("Click["&$clickPosX&" ; "&$clickPosY&"]   ")

   $clic = ControlClick($hwd, "", "", "left", 1, $clickPosX, $clickPosY) ; Renvoi 1 que le click soit fait ou non, que la fenêtre soit active ou non, et que ma souris soit sur la fenêtre ou non.
WEnd
Il faut savoir que j'ai tenter en mettant des coordonnées direct de ce type :
ControlClick($hwd, "", "", "left", 1, 100, 100)
Les deux ne fonctionnent pas. Il faut savoir que l'objectif est que ma fenêtre TSE ne soit jamais active (pour que je puisse développer à coté, justement, d'où l'intérêt d'utiliser ControlClick() plutôt que MouseClick()).

J'ai remarquer que lorsque je bougeais ma souris sur la fenêtre TSE, mon programme cliquait pile aux coordonnées de ma souris (qu'importe les valeurs de X et de Y, et uniquement quand ma souris se trouve dans la fenêtre).

Une idée de comment programmer via ControlClick() un click à des coordonnées spécifiques d'une fenêtre streamant un contenu ?

EDIT :
- Autre information, le clic fonctionne si je passe ma souris sur la fenêtre, et la fenêtre reste bien inactive malgré le click. Du coup, je doute que ce sois lié à une obligation de WinActivate(), je dois juste me tromper quelque part.
- Ma problématique me rappelle une problématique similaire trouvée sur le forum https://www.autoitscript.fr/forum/viewt ... =3&t=15465
- Autoit Info ne m'indique aucun" Control" sur l'ensemble de ma fenêtre TSE. C'est peut être pour ça que ControlClick n'arrive pas à trouver les coordonnées.
Répondre