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));以上代码编译全通过,可是但我对所监视的窗口单击时,并没有显示对话框,为什么捕获不到消息??????????
解决方案 »
- 求VC用ADO访问ACCESS2000的问题
- 请问一下,软件功能的“拓展”或“插件”如何编写?
- 对网络连接来说, 拔网线, 禁用网络连接, 直接关闭客户端程序,这3者有什么不同吗?
- I/O完成端口模式中,能否使用代理服务器?
- 知道一个字符轮廓(glyph)在字库中的索引,怎样找出对应的字符UNICODE编码呢?
- 跪求ShellExecute参数传递问题???
- 这几行程序为何显示不出来?
- 请问谁知道QQ2000发送信息中的聊天内容的存储格式?
- 我用access2000做数据库,是不是要求安装的机子必须得安装access 2000?
- 我想下一个fms
- allenhai1980(学术人生。。。) !!!
- 我如何检测到用户打开/关闭了一个进程???
如果用了要初始化一下.
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
);