Espece de hooking

Résolu
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007 - 6 nov. 2007 à 15:46
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007 - 7 nov. 2007 à 15:31
Hello,


J'aimerais savoir s'il y a une technique pour "espionner" les evenements de la souris sans passer par un hook.

je dis espionner car le hook va se mettre en travers des evenements de la souris et les modifier si on en a envie.

Il suffit alors un ralentissement général de la machine pour bloquer le
déplacement de la souris pendant qq temps, ce qui me pose problème.

j'arrive a retrouver les mouvements de la souris plus ou moins avec un timer et l'API getCursorPos

par contre ce que j'aimerais c'est savoir si il y a un moyen de savoir quels boutons ont été dernièrement cliqués.

( comme la keymap pour le clavier )


merci :)

2 réponses

neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 15:31
J'ai réussi à trouver une solution plus ou moins fiable à mon problème.

J'en fait part pour ceux que ça pourrait intéresser.


J'avoue que c'est un peu du bricolage mais ça très bien.


J'utilise les api GetCursorPos et GetKeyState(VK_MBUTTON) avec un timer.


en fonction du changement de l'état de GetKeyState, j'arrive à percevoir les clics.


Private Declare Function GetCursorPos Lib "user32" (lpPoint As pointapi) As Long


Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer


Private Type pointapi


    x As Long


    y As Long


End Type


Dim lastMButton As Long


Private Sub Timer1_Timer()


    Dim tptapi As pointapi


    Dim curState As Long


   


    GetCursorPos tptapi


    LblCoord.Caption = "X=" & tptapi.x & " Y=" & tptapi.y


    curState = GetKeyState(4)


    If lastMButton <> curState Then


        lastMButton = curState


        LstButtons.AddItem "MidMouseDown :: " & lastMButton


    End If


End Sub


Petit inconvénient, les clicks qui durent moins que 10ms, on peut pas les intercepter :/


donc technique a éviter pour un public névrosé et dopé
3
neurosupherot Messages postés 81 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 14:47
up?


merci
0
Rejoignez-nous