La souris

xbabilone Messages postés 47 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 janvier 2018 - 15 janv. 2008 à 23:21
xbabilone Messages postés 47 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 janvier 2018 - 16 janv. 2008 à 18:55
Bonne année a tous .

Ma question est simple .
On peut recuperer la position de la souris avec la fonction GetCursorPos() de façon simple.

Peut on recuperer le fait qu'un bouton de la souris soit appuyé sans passer par les messages windows du type WM_LBUTTONDOWN  ?
Mais par une fonction de type :    bool GetLButtonDown().

Si cette  fonction existe, c'est qu'il faut croire au pere noel.

merci

2 réponses

SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
16 janv. 2008 à 18:01
Ca marche aussi avec



SHORT GetAsyncKeyState(      
    int vKey
);



Soit pour toi GetAsyncKeyState( VK_LBUTTON ) pour le boutton gauche ou GetAsyncKeyState( VR_LBUTTON )


Mais cette fonction detecte le clik physique et non le clik logique comme
WM_LBUTTONDOWN
0
xbabilone Messages postés 47 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 janvier 2018 2
16 janv. 2008 à 18:55
sur un newsgroup j'ai trouvé :

Pour intercepter les evenement souris ,il faut créer un hook local pour intercepter les messages a l'interieur d'une application.
Ou un hook systeme pour intercepter tous les messages pour toutes les applications.

La fonction est
HHOOK SetWindowsHookEx(      
    int idHook,
    HOOKPROC lpfn,
    HINSTANCE hMod,
    DWORD dwThreadId
);

The SetWindowsHookEx function installs an application-defined
hook procedure into a hook chain. You would install a hook procedure to
monitor the system for certain types of events. These events are
associated either with a specific thread or with all threads in the
same desktop as the calling thread.

Parameters

* idHook :
[in] Specifies the type of hook procedure to be installed. This parameter can be one of the following values. <dl> * :
WH_CALLWNDPROC
Installs
a hook procedure that monitors messages before the system sends them to
the destination window procedure. For more information, see the CallWndProc hook procedure. * :
WH_CALLWNDPROCRET
Installs
a hook procedure that monitors messages after they have been processed
by the destination window procedure. For more information, see the CallWndRetProc hook procedure. * :
WH_CBT
Installs
a hook procedure that receives notifications useful to a computer-based
training (CBT) application. For more information, see the CBTProc hook procedure. * :
WH_DEBUG
Installs a hook procedure useful for debugging other hook procedures. For more information, see the DebugProc hook procedure. * :
WH_FOREGROUNDIDLE
<dd>Installs
a hook procedure that will be called when the application's foreground
thread is about to become idle. This hook is useful for performing low
priority tasks during idle time. For more information, see the ForegroundIdleProc hook procedure. * :
WH_GETMESSAGE
Installs a hook procedure that monitors messages posted to a message queue. For more information, see the GetMsgProc hook procedure. * :
WH_JOURNALPLAYBACK
<dd>Installs a hook procedure that posts messages previously recorded by a WH_JOURNALRECORD hook procedure. For more information, see the JournalPlaybackProc hook procedure. * :
WH_JOURNALRECORD
<dd>Installs
a hook procedure that records input messages posted to the system
message queue. This hook is useful for recording macros. For more
information, see the JournalRecordProc hook procedure. * :
WH_KEYBOARD
Installs a hook procedure that monitors keystroke messages. For more information, see the KeyboardProc hook procedure. * :
WH_KEYBOARD_LL
<dd>Windows NT/2000/XP: Installs a hook procedure that monitors low-level keyboard input events. For more information, see the LowLevelKeyboardProc hook procedure. * :
WH_MOUSE
<dd>Installs a hook procedure that monitors mouse messages. For more information, see the MouseProc hook procedure. * :
WH_MOUSE_LL
<dd>Windows NT/2000/XP: Installs a hook procedure that monitors low-level mouse input events. For more information, see the LowLevelMouseProc hook procedure. * :
WH_MSGFILTER
<dd>Installs
a hook procedure that monitors messages generated as a result of an
input event in a dialog box, message box, menu, or scroll bar. For more
information, see the MessageProc hook procedure. * :
WH_SHELL
Installs a hook procedure that receives notifications useful to shell applications. For more information, see the ShellProc hook procedure. * :
WH_SYSMSGFILTER
<dd>Installs
a hook procedure that monitors messages generated as a result of an
input event in a dialog box, message box, menu, or scroll bar. The hook
procedure monitors these messages for all applications in the same
desktop as the calling thread. For more information, see the SysMsgProc hook procedure.
</dd><dt>lpfn</dt><dd>
[in] Pointer to the hook procedure. If the dwThreadId parameter is zero or specifies the identifier of a thread created by a different process, the lpfn parameter must point to a hook procedure in a DLL. Otherwise, lpfn can point to a hook procedure in the code associated with the current process. </dd><dt>hMod</dt><dd>
[in] Handle to the DLL containing the hook procedure pointed to by the lpfn parameter. The hMod parameter must be set to NULL if the dwThreadId
parameter specifies a thread created by the current process and if the
hook procedure is within the code associated with the current process. </dd><dt>dwThreadId</dt><dd>
[in] Specifies the identifier of the thread with which the hook
procedure is to be associated. If this parameter is zero, the hook
procedure is associated with all existing threads running in the same
desktop as the calling thread. </dd></dl>Return Value

If the function succeeds, the return value is the handle to the hook procedure.

If the function fails, the return value is NULL. To get extended error information, call
0
Rejoignez-nous