Simuler un click gauche de souris (souris droitier)

Signaler
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
11
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
5 octobre 2010
-
Voila en fait j aimerais pouvoir simuler un click gauche de souris et je sais pas si une fonction existe.
De plus et si possible il faudrait ke je puisse choisir ou cliker car c'est apres avoir fait un AppActivate ...
Qqun peut m aider ou m expliker koi prendre?
Merci d avance


---------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

6 réponses

Messages postés
60
Date d'inscription
vendredi 14 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2012
2
il faut utiliser une api:

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)
Private Declare Function SetCursorPos& Lib "user32" (ByVal X As Long, ByVal Y As Long)


'constantes:
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Const MOUSEEVENTF_WHEEL = &H80
Const MOUSEEVENTF_XDOWN = &H100
Const MOUSEEVENTF_XUP = &H200
Const WHEEL_DELTA = 120
Const XBUTTON1 = &H1
Const XBUTTON2 = &H2


Public Function Souris(X, Y)


'on active la position du curseur
SetCursorPos X, Y
'on clique sur le bouton
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, X, Y, 0, 0) '
'on relache la bouton
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, X, Y, 0, 0)

End Function
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
J aurais bien aimé kelkes commentaires supplementaires...
Et tu met ou les coordonnées ou la souris doit etre ?
C un peu brutal du code comme ca je trouve ...
Au pire je trouverais qd je serais chez moi si l api existe sous vb5...
Teclis


---------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
586
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
13 février 2008
2
Salut,
je confirmes la solution si desus


<HR>

Life is short...Learn more
Copy Rights <> Rights to Copy
Messages postés
60
Date d'inscription
vendredi 14 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2012
2
Tu copies le code dans un module.

Ensuite, quand tu veux simuler un click gauche à la position (X,Y) de l'écran, tu appelle la fonction Souris(X,Y).

Le reste du code sert à déclarer l'API. Les constantes ne sont pas
toutes utiles, mais tu peux t'en servir si tu veux simuler d'autres
évènements souris.

Pour plus d'info tu peux aller chercher sur les sites dédiés aux APIs
Messages postés
3
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
13 mars 2006

je comprend pas car lorsque je simule le clic souris le débogueur il est pas content. il me dit en visant ça : |Call mouse_event(MOUSEEVENTF_LEFTDOWN + &MOUSEEVENTF_ABSOLUTE, X, Y, 0, 0)| :
"Un appel à la fonction PInvoke 'myfirstapplication!myfirstapplication.my_first_MDIParent1::mouse_event' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible."

Alors j'aimerai savoir pourquoi ça a déséquilibré la pile ... ?
Merci d'avance
Messages postés
11
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
5 octobre 2010

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call Souris(100, 200)
End Sub