wince5.0 鼠标钩子 wParam都是零,而且点一下,MouseProc调3次
鼠标钩子,如何区别消息类型?
wParam都是零,而且点一下,MouseProc调3次
并没有写dll。直接写在程序里了。
#include "pwinuser.h"
HHOOK g_hHook;//是一个不属于任何类或窗体的全局变量
//初始CMainFrmDlg窗体时=======================================================================
g_hHook=NULL;
EVENTMSG msg = {HC_ACTION};
g_hHook = QASetWindowsJournalHook(WH_JOURNALRECORD,MouseProc,&msg);
//=======================================================================
//结束CMainFrmDlg窗体时==========================================================
QAUnhookWindowsJournalHook(WH_JOURNALRECORD);
g_hHook = NULL;
//==========================================================
#define WM_USER_MOUSE (WM_USER+103)
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
static unsigned char i=0;
if(nCode==HC_ACTION)
{
if( (++i%3) == 0)
::SendMessage(HWND_BROADCAST,WM_USER_MOUSE,wParam,FALSE);
}
return CallNextHookEx(g_hHook,nCode,wParam,lParam);
}
ON_MESSAGE(WM_USER_MOUSE,OnMouseReceiveData)
LONG CMainFrmDlg::OnMouseReceiveData(WPARAM wParam, LPARAM lParam)
{
return 0;
}