Maintenir touche clavier pendant click souris

cs_Taurus67 Messages postés 10 Date d'inscription lundi 27 décembre 2004 Statut Membre Dernière intervention 10 août 2006 - 10 août 2006 à 19:01
cs_Taurus67 Messages postés 10 Date d'inscription lundi 27 décembre 2004 Statut Membre Dernière intervention 10 août 2006 - 10 août 2006 à 23:35
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
10 août 2006 à 20:09
As-tu essayé un SendMessage ?
0
cs_Taurus67 Messages postés 10 Date d'inscription lundi 27 décembre 2004 Statut Membre Dernière intervention 10 août 2006
10 août 2006 à 22:02
J'avoue ne pas connaitre cette fonction. Je m'informe, je test et jreviens :)
Merci d'avoir répondu si vite.

      Julien.
0
cs_Taurus67 Messages postés 10 Date d'inscription lundi 27 décembre 2004 Statut Membre Dernière intervention 10 août 2006
10 août 2006 à 23:35
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.
0
Rejoignez-nous