网站首页 > 教程分享 正文
设置HOOK
HHOOK WINAPI SetWindowsHookEx(
__in int idHook, \\钩子类型
__in HOOKPROC lpfn, \\回调函数地址
__in HINSTANCE hMod, \\实例句柄
__in DWORD dwThreadId); \\线程ID
)
HHOOK SetWindowsHookEx(
int idHook, // 钩子的类型,即它处理的消息类型
HOOKPROC lpfn, // 钩子子程的地址指针。如果dwThreadId参数为0
// 或是一个由别的进程创建的线程的标识,
// lpfn必须指向DLL中的钩子子程。
// 除此以外,lpfn可以指向当前进程的一段钩子子程代码。
// 钩子函数的入口地址,当钩子钩到任何消息后便调用这个函数。
HINSTANCE hMod, // 应用程序实例的句柄。标识包含lpfn所指的子程的DLL。
// 如果dwThreadId 标识当前进程创建的一个线程,
// 而且子程代码位于当前进程,hMod必须为NULL。
// 可以很简单的设定其为本应用程序的实例句柄。
DWORD dwThreadId // 与安装的钩子子程相关联的线程的标识符。
// 如果为0,钩子子程与所有的线程关联,即为全局钩子。
);
一个简单的当前线程钩子示例
HHOOK g_hMouseHook = nullptr;
g_hMouseHook = SetWindowsHookEx(WH_MOUSE, MouseProc, NULL, GetCurrentThreadId());
//鼠标钩子处理函数
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
MOUSEHOOKSTRUCT *pMs = (MOUSEHOOKSTRUCT *)lParam;
HWND hWnd = ::GetParent(pMs->hwnd);
switch (wParam)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_NCMOUSEMOVE:
//::SendMessage(g_pHandler->GetMainHwnd(), wParam, 0, (LPARAM)(&pMs->pt);
{
int i = 0;
i++;
}
break;
case WM_NCMOUSELEAVE:
if (pClassform)
pClassform->showCefBackBtn(false);
break;
case WM_NCMOUSEHOVER:
if (pClassform)
pClassform->showCefBackBtn(true);
break;
case WM_MOUSEMOVE:
//::SendMessage(g_pHandler->GetMainHwnd(), wParam, 0, (LPARAM)(&pMs->pt);
{
int i = 0;
i++;
}
default:
break;
}
// return 1; //表示对当前消息已经处理了,这样消息也就不会向下传递
return CallNextHookEx(g_hMouseHook, nCode, wParam, lParam); //放行
}
UnhookWindowsHookEx(g_hMouseHook);
猜你喜欢
- 2024-10-10 C/C++恶意代码盘点(二):后门丨文件监控丨自删除功能
- 2024-10-10 「面试题」和Vue.js有关的41个基础问题
- 2024-10-10 VueCLI3.0之vue-router路由详解(vue-router路由的作用)
- 2024-10-10 Vue经典面试题(vue常见面试题及答案2021)
- 2024-10-10 这几招技术,病毒木马经常用(病毒木马感染途径有哪些)
- 2024-10-10 前端知识点也可以当做面试题含vue
- 2024-10-10 计算机犯罪系列(二十五)脚本外挂模拟人工自动打怪刑事责任分析
- 2024-10-10 前端vue面试题(前端vue面试题目)
- 2024-10-10 Vue3.0+Vant3聊天室|vue3仿微信App聊天实例
- 2024-10-10 警惕Gorgon APT组织窃密攻击(apt窃密特点)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)