pb simulation click souris avec "postMessage"

pb simulation click souris avec "postMessage" - API Win32 - Programmation

Marsh Posté le 28-08-2009 à 22:58:01    

Bonjour à tous,
 
Je viens de découvrir ce super site, c'est une véritable mine.  
Néanmoins en fouillant un peu partout je ne suis pas parvenu à répondre à mon problème.
 
Je cherche à faire un petit programme en C permétant de cliquer sur des applications qui ne sont pas forcément en premier plan.  
 
J'ai le handle de la fenetre sur laquelle je veux cliquer et la position (en pixel) du click dans la fenetre.  
 
J'ai testé les fonctions suivantes (x et y étant les coordonnées du click):  
 
Pour en enfoncer le bouton gauche de la souris :  
PostMessage(handle, WM_LBUTTONDOWN, 0, MAKELPARAM(x,y));  
ou PostMessage(handle, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(x,y));  
 
Pour lacher le bouton gauche de la souris :  
PostMessage(handle, WM_LBUTTONUP, 0, MAKELPARAM(x,y));  
 
et .... rien !  
 
ça compile bien, ça ce lance bien, mais ça ne fait rien, mais rien de chez rien !
 :(  :(  :(  
 
 
please help me.......

Reply

Marsh Posté le 28-08-2009 à 22:58:01   

Reply

Marsh Posté le 29-08-2009 à 16:01:34    

Citation :

cliquer sur des applications qui ne sont pas forcément en premier plan

Je crois qu'il faut d'abord mettre la fenêtre au premier plan, par exemple avec un SetWindowPos() ou SetActiveWindow(). Mais, j'ai remaqué que ce genre de traitement ne marche pas toujours très bien. Alors j'utilise AutoIT qui est un langage particulier qui permet de très bien faire des clics et autres choses sur les fenêtres des autres applications.

Reply

Marsh Posté le 30-08-2009 à 16:38:18    

En fait même lorsque la fenêtre est en premier plan cela ne fait rien.
 
D'après ce que j'ai pu lire l'utilisation de "mouse_event" nécessite d'avoir l'application en premier plan, "postMessage" doit permettre le click de fenêtres qui ne sont pas en premier plan.
 
En fait ce petit programme fait parti d'un programme plus vaste en C. L'utilisation d'un autre langage pour faire cela me compliquerait beaucoup la tâche.

Reply

Marsh Posté le 30-08-2009 à 17:48:58    

tu as moyen d'intégrer une DLL de autoit, mais après autoit c'est du windows pur


Message édité par gatsu35 le 30-08-2009 à 17:49:06

---------------
Blablaté par Harko
Reply

Marsh Posté le 30-08-2009 à 21:34:59    

Vous avez un exemple d'intégration d'une DLL AutoIT dans un programme en C ?


Message édité par Lustuc le 31-08-2009 à 00:18:19
Reply

Marsh Posté le 30-08-2009 à 22:44:16    

heu un on dit UN programme, mais heu nan, mais sur leur site tous les exemples sont là, et tu peux aussi exposer ton problème sur leur forum


---------------
Blablaté par Harko
Reply

Marsh Posté le 31-08-2009 à 00:22:24    

correction faite ;)  
Je vais regarder leur site.
 
Enfin si quelqu'un a une idée pour simuler un click directement en C. ça doit tout de même être possible  :pfff:

Reply

Marsh Posté le 31-08-2009 à 00:23:39    

désolé, chui pas expert en C, mais j'ai déjà fait du autoIt et je confirme que àa poutre


---------------
Blablaté par Harko
Reply

Marsh Posté le 31-08-2009 à 00:42:43    

gatsu35 a écrit :

je confirme que àa poutre


heu tu confirmes quoi? :??:

Reply

Marsh Posté le 01-09-2009 à 15:15:07    

>Enfin si quelqu'un a une idée pour simuler un click directement en C. ça doit tout de même être possible  
 
Ca doit faire 15 ans que les methodes sont postées sur les archives Google (Groups)
(notamment le groupe (avancé, mais là c'est simple) de prog Windows http://minilien.com/?CiLBd7ZaRp )

Reply

Marsh Posté le 01-09-2009 à 15:15:07   

Reply

Marsh Posté le 29-11-2009 à 15:11:41    

il te faudrait le handle non pas de la fenetre mais du bouton ... c'est lui qui va capturer l evenement mouse_down

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed