-
clic de souris
Bonjour a tous,
J'aimerais savoir si c'est possible de faire un clique gauche avec la souris via une application Qt. J'ai vu la classe QCursor qui me permais de déplacé mon curseur mais j'ai rien trouvé encore pour simulé un clic de souris.
est ce possible avec Qt ?
merci d'avance,
-
Salut,
Souvent, on "simule" un clic de souris en parlant d'un item particulier, comme un bouton, une checkbox ou encore une fenetre de ton application.
Ou alors ton but est de simuler le clic d'un utilisateur sur l'interface d'une autre application. Si c'est ton objectif, c'est sans doute beaucoup plus compliqué, voire impossible. Peux tu nous donner davantage d'informations ?
G.
-
Oui voila je voudrais tous d'abord positionné ma souris avec QCursor et ensuite faire un clique gauche a la position sur n'importe quel autre application (le truc compliqué :/)
-
Alors là, je ne peux pas vraiment t'aider. Selon moi, je pense que c'est impossible de faire ça directement via Qt. Il faudrait passer par ton driver de souris ou encore une fonction spécifique à ton OS.
Mais j'avoue que je n'ai jamais travaillé sur ce genre de choses.
Bonne chance,
G.
-
Si non sa doit être possible de faire un clic en Assembleur.
Il me suffirait donc de positionné mon curseur et ensuite utilisé une fonction tel que :
asm(";instruction asm");
Le problème c'est que je débute en Asm... :?
Si non merci quand même,
-
Avec mousevent tu peux simuler des clicks gauches ou droits, puis si tu as besoin d'aller sur une appli speciale il faut recupérer le nom de handle de cette fenêtre pour mettre le focus dessus. Ensuite tu pourras bouger ta souris et faire le click. J'ai pas le code en tête mais ce soir je regarderais dans mes codes sources et je te passerais ça. C'est pas QT mais de l'api mais bon ça ne devrait pas gêner.
-
Salut,
Ce n'est pas possible avec Qt en effet. Je ne saurais dire pour les X-like, mais sous Windows (et donc avec l'api Win32), tu as "juste" à récupérer le handle de la fenêtre la plus proche sous ton curseur (WindowFromPoint() je crois), puis lui transmettre le message désiré (avec PostMessage()).
Edit: plutôt que WindowFromPoint, tu peux obtenir le HWND du bureau (GetDesktopWindow()) puis utiliser ChildWindowFromPoint() en utilisant le handle du bureau.
A tester, je ne sais pas laquelle des 2 méthodes est la meilleure (voire marche tout court :aie:)