Maintenir touche clavier pendant click souris

Signaler
Messages postés
10
Date d'inscription
lundi 27 décembre 2004
Statut
Membre
Dernière intervention
10 août 2006
-
Messages postés
10
Date d'inscription
lundi 27 décembre 2004
Statut
Membre
Dernière intervention
10 août 2006
-
Bonjour, alors voila j'ai essayé pas mal de trucs mais je n'arrive pas à simuler l'opération SHIFT+Click_Gauche bien que cela semble trivial.
Tout d'abord les sendkeys sont à proscrire car ils n'envoient qu'une impulsion ( pour la pression de la touche SHIFT ).
J'ai alors essayé la fonction keybd_event à travers le code suivant :

keybd_event &H10, 0, 0, 0 #pression sur la touche shift
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI #click gauche
keybd_event &H10, 0, 2, 0 #relachement de la touche shift

mais cela ne fonctionne malheursement pas.
C'est pourquoi je fais appel à vos connaissances pour m'aider et je vous en remercie d'avance.

                     Julien.

3 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
As-tu essayé un SendMessage ?
Messages postés
10
Date d'inscription
lundi 27 décembre 2004
Statut
Membre
Dernière intervention
10 août 2006

J'avoue ne pas connaitre cette fonction. Je m'informe, je test et jreviens :)
Merci d'avoir répondu si vite.

      Julien.
Messages postés
10
Date d'inscription
lundi 27 décembre 2004
Statut
Membre
Dernière intervention
10 août 2006

Sendmessage ne semble facile à utiliser :(
Voici un premier bout de code, je rappelle que je voudrais simuler :
Appuyer sur la touche a
Enfoncer la touche shift
Clicker gauche
Relacher la touche shift

<
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

SendKeys "a"   #Pression touche "a", aucun problème.
Dim wc3handle As Long
wc3handle = FindWindow(vbNullString, "Warcraft III")   #Récupération de l'handle de l'appli, ici warcraft III, aucun problème non plus apparement car si je lance le code il bascule sur le jeu.
SendMessage wc3handle, &H10, 0, 0&     #Alors là je ne sais pas trop.... &H10 pour SHIFT, le 0 je sais pas, et le 0& parcequ'il est dans presque tous les exemples que j'ai vu, quoi qu'il en soit, cela n'a pas l'air de fonctionner
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI

>

En résumé, je ne sais pas utiliser la fonction Sendmessage :(  ,  la documentation dans la librairie msdn est peu complète à mon gout et les exemples que j'ai trouvé ne correspondent pas vraiment à mon besoin.
Si quelqu'un sait comment utiliser Sendmessage ou si quelq'un ) une autre idée pour maintenir la touche shift pendant un click gauche, n'hésitez surtout pas.

               Julien.