1

Bonjour!

Un tout nouveau post pour un nouveau besoin!
Je cherche un moyen de générer des clics de souris sous windows XP. Mais attention, je veux générer des clicks ailleurs que sous la souris, et sans déplacer le curseur. Je voudrais que ce soit complètement transparent.
Pour le moment, je ne vois que "PostMessage", y a-t-il un autre moyen?

2

Y'a SendInput() pour simuler des entrées clavier/souris, mais je ne pense pas que ça fonctionne pour cliquer ailleurs que sous le curseur (à voir).

Sinon, je dirais PostMessage(), oui.

Attention quand même, il faut voir ce que vont faire certaines applications si elles reçoivent un clic alors que le curseur n'est pas à la bonne position, ou qu'elles n'ont carrément pas le focus. Tu risques potentiellement d'avoir des problèmes.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

3

Oui, pour faire court, c'est carrément une mauvaise idée.
D'autant plus que l'application devrait à priori pouvoir ignorer tes événements simulés.

Il est par exemple assez courant que les applications "capturent" la souris après un clic. (L'état de capture est exclusif dans le système) donc tu vas forcement faire déconner plein de trucs si tu ne fais pas trop attention.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

4

Et déplacer le curseur de façon logicielle le temps d'un clic puis le ramener à sa position ? (bon, ok, c'est ULTRA crade grin)
avatar

5

(mais non, mais non : tu es même sur la bonne voie embarrassed)

6

Oui, c'est ce que j'ai fait tongue
Je le masque aussi. Mais ça marche moyen : j'affiche un autre curseur (2) que celui de la souris là où je veux cliquer.
Du coup, avec MFC je sais faire une fenêtre (curseur 2) qui ne prend pas le focus quand on clique dessus, mais avec Qt ça ne marche pas. Donc je masque mon curseur 2 avant de simuler le clic... et ça ne marche pas.
Il doit y avoir des délais liés aux apparitions/disparitions de fenêtres

C'est par contre l'option qui est utilisée par GlovePie.
Du coup je vais surement me rabattre sur les SendMessage.
GoldenCrystal (./3) :
Oui, pour faire court, c'est carrément une mauvaise idée.

C'est possible. Mais je vais surement me limiter à la portée de mon application. C'est expérimental :-)

7

Attends, tu veux simuler des clics de souris dans ta propre appli ? Ou j'ai mal compris ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo