hook捕捉鼠标的键盘的操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(!hMouseHook)
return false;
return true;
}wenku.baidu.com
2:响应hook的函数
LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
FILE *fp = NULL;
HWND hwnd;
HOOK技术,对大家来说,应该不是很陌生吧,在我们日常的工作中,或多或少会去捕捉鼠标的移动轨迹或者键盘的操作,此时hook就派上用场了,hook的使用很简单:
1:建立hook(用于捕捉鼠标的操作)
BOOL InstallHook()
{
hinst = AfxGetInstanceHandle();
hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, (HOOKPROC)LowLevelMouseProc, hinst, 0);//标注的是调用hook响应函数
}
3:在使用完后,要将hook释放掉!
总结:
在使用SetWindowsHook截获鼠标事件时,如果使用WH_MOUSE参数,则只能监控钩子所在模块的鼠标事件。如需要截获整个系统的鼠标事件,那么使用WH_MOUSE_LL参数。
MSLLHOOKSTRUCT *mhsLParam;
mhsLParam = (MSLLHOOKSTRUCT*)(lParam);
if (nCode < 0)// do not process the message
{
return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
break;
case WM_MOUSEMOVE:
PostMessage(hwnd, WM_USER+wParam, mhsLParam->pt.x, mhsLParam->pt.y);
break;
}
return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
}
else
{
hwnd = hDlg;
}
switch(wParam)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_MBUTTONDOWN:
case WM_MBUTTONUP:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
PostMessage(hwnd, WM_USER+wParam, 0, 0);
return false;
return true;
}wenku.baidu.com
2:响应hook的函数
LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
FILE *fp = NULL;
HWND hwnd;
HOOK技术,对大家来说,应该不是很陌生吧,在我们日常的工作中,或多或少会去捕捉鼠标的移动轨迹或者键盘的操作,此时hook就派上用场了,hook的使用很简单:
1:建立hook(用于捕捉鼠标的操作)
BOOL InstallHook()
{
hinst = AfxGetInstanceHandle();
hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, (HOOKPROC)LowLevelMouseProc, hinst, 0);//标注的是调用hook响应函数
}
3:在使用完后,要将hook释放掉!
总结:
在使用SetWindowsHook截获鼠标事件时,如果使用WH_MOUSE参数,则只能监控钩子所在模块的鼠标事件。如需要截获整个系统的鼠标事件,那么使用WH_MOUSE_LL参数。
MSLLHOOKSTRUCT *mhsLParam;
mhsLParam = (MSLLHOOKSTRUCT*)(lParam);
if (nCode < 0)// do not process the message
{
return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
break;
case WM_MOUSEMOVE:
PostMessage(hwnd, WM_USER+wParam, mhsLParam->pt.x, mhsLParam->pt.y);
break;
}
return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
}
else
{
hwnd = hDlg;
}
switch(wParam)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_MBUTTONDOWN:
case WM_MBUTTONUP:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
PostMessage(hwnd, WM_USER+wParam, 0, 0);