TestHook.cpp: UINT MouseProcess(int idHook,HOOKPROC lpfn,HINSTANCE hmod,DWORD
dwThreadId)
//钩子处理函数
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); HOOK hook;
hook=::SetWindowsHookEx(idHook,lpfn,hmod,dwThreadId);
if(wParam==WM_LBUTTONDOWN)
{
AfxMessageBox("Mouse's Left Button Is Pressed!");
return 0;
}
TestHook.def:
MouseProcess @1以下调用dll: hwnd=::FindWindow(NULL,szCaptionName);
unsigned long IdProcess;
unsigned long IdThread;
IdThread=::GetWindowThreadProcessId(hwnd,NULL);
HINSTANCE hinstance;
typedef UINT (STR_FUNC) (int idHook,HOOKPROC lpfn,HINSTANCE
hmod,DWORD dwThreadId);
STR_FUNC * pFunction; VERIFY(hinstance=::LoadLibrary(
“F:\\Works\\TestHook\\Debug\\testhook.dll"));
VERIFY(pFunction=
(STR_FUNC*)::GetProcAddress(hinstance,"MouseProcess"));
(*pFunction)(WH_CALLWNDPROCRET,
(HOOKPROC)pFunction,
hinstance,IdThread); VERIFY(FreeLibrary(hinstance));以上代码编译全通过,可是但我对所监视的窗口单击时,并没有显示对话框,为什么捕获不到消息??????????
dwThreadId)
//钩子处理函数
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); HOOK hook;
hook=::SetWindowsHookEx(idHook,lpfn,hmod,dwThreadId);
if(wParam==WM_LBUTTONDOWN)
{
AfxMessageBox("Mouse's Left Button Is Pressed!");
return 0;
}
TestHook.def:
MouseProcess @1以下调用dll: hwnd=::FindWindow(NULL,szCaptionName);
unsigned long IdProcess;
unsigned long IdThread;
IdThread=::GetWindowThreadProcessId(hwnd,NULL);
HINSTANCE hinstance;
typedef UINT (STR_FUNC) (int idHook,HOOKPROC lpfn,HINSTANCE
hmod,DWORD dwThreadId);
STR_FUNC * pFunction; VERIFY(hinstance=::LoadLibrary(
“F:\\Works\\TestHook\\Debug\\testhook.dll"));
VERIFY(pFunction=
(STR_FUNC*)::GetProcAddress(hinstance,"MouseProcess"));
(*pFunction)(WH_CALLWNDPROCRET,
(HOOKPROC)pFunction,
hinstance,IdThread); VERIFY(FreeLibrary(hinstance));以上代码编译全通过,可是但我对所监视的窗口单击时,并没有显示对话框,为什么捕获不到消息??????????
如果用了要初始化一下.
LRESULT CALLBACK MouseProc(
int nCode, // hook code
WPARAM wParam, // message identifier
LPARAM lParam // mouse coordinates
);HHOOK SetWindowsHookEx(
int idHook, // hook type
HOOKPROC lpfn, // hook procedure
HINSTANCE hMod, // handle to application instance
DWORD dwThreadId // thread identifier
);