SIMULER UN CLICK DE SOURIS

JFK - 18 févr. 2000 à 17:04
lorenzoviva Messages postés 18 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 26 octobre 2008 - 2 déc. 2007 à 21:25
Cherche fonction qui simule un click de la souris de la part de l'utilisateur , grand besoin !!! un peut comme la fonction SendKeys(blabla) mais pour la souris !!!

6 réponses

Le problème ici est qu'il faut connaître le Handle du boutton.
Si tu le connaîs, rien de plus simple :
Il faut utiliser la fonction SENDMESSAGE.
Cette fonction comporte 4 paramètres :
1. Le Handle de la fenêtre ; dans notre cas le boutton.
2. Le message à envoyer ; ici on lui demander un clic de souris, on va donc créer une constante de valeur &HF5 (soit 245).
3. Inutile ici ; laisser à 0
4. Inutile ici ; laisser à 0

Voici un exemple concret : crée une feuille avec 2 bouttons.
le premier appellera la fonction SENDMESSAGE, et l'autre sera celui où l'on va cliquer "virtuellement".

Insère ce code dans ton programme.

' Message à envoyer
Private Const BM_CLICK = &HF5 '245

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Private Sub Command1_Click()
SendMessage Command2.hwnd, BM_CLICK, 0, ""
End Sub

Private Sub Command2_Click()
Beep
MsgBox "YAHOO !!!"
End Sub

Voilà rien de plus simple si ce n'est de connaître le Handle du boutton sur lequel tu vas cliquer "virtuellement".
Un autre problème est que parfois tu veux effectuer cette opération sur une application que tu n'as pas créé et dont tu n'as pas le source.
Dans ce cas précis il faut ce méfier car on croit parfois que c'est un boutton et en fait se n'en est pas un.
Exemple les touches de la calculatrice de windows ne sont pas des bouttons !

Voilà si tu as des questions ...

Fred

chbaud@club-internet.fr
tiens quelques petits trucs:

Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cbuttons As Long, ByVal dwExtraInfo As Long)

puis:
Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)

pour l'appuie sur un des boutons

et:

Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)

et pour le relachement du bouton...

Voila j'espere que ca t'aura aidé

@+
euh.. desole c'etait pas long...
OK bon faut que tu me donnes aussi le pseudo que tu veux que j'utilises et t'as ICQ?

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ypelissier Messages postés 23 Date d'inscription vendredi 16 mars 2012 Statut Membre Dernière intervention 16 mai 2013
31 juil. 2002 à 11:15
Je suis sous VBA et il ne comprend pas cette instruction ? Command2.hwnd
Qu'est-ce que c'est ?

Merci
Yann
lorenzoviva Messages postés 18 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 26 octobre 2008
2 déc. 2007 à 21:25
aucune ne marche
Rejoignez-nous