打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC挂线程钩子的小经验

VC挂线程钩子的小经验

2008-11-20 09:34:01 阅读(14) 发表评论

  挂线程钩子,最主要的是调用SetWindowsHookEx函数,使用例下:

双击代码全选
1
2
3
4
5
g_hHook=SetWindowsHookEx(
 WH_SYSMSGFILTER|WH_MSGFILTER,//截获消息类型,可组合使用
 (HOOKPROC)HookShowWindow,//消息回调函数
 g_hInst,//消息回调函数所在模块的handle,因为是跨进程线程钩子,消息处理函数必须放到dll里面,故,这必须是dll的句柄。就因为这的错误,我折腾了几个小时。这个句柄可以在dllmain函数的hModule参数保存得到。
 progID);//要挂钩子的线程ID

  其中, progID获取可如下:

  DWORDprogID=GetWindowThreadProcessId(FindWindow("xvt320mditask100",NULL)->m_hWnd,NULL);

  g_hInst获取如下:

双击代码全选
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
HINSTANCEg_hInst;
BOOLAPIENTRYDllMain(HANDLEhModule, 
           DWORD ul_reason_for_call, 
           LPVOIDlpReserved
   )
{
switch(ul_reason_for_call)
{
caseDLL_PROCESS_ATTACH:
 g_hInst=HINSTANCE(hModule);
 break;
caseDLL_PROCESS_DETACH:
 break;
caseDLL_THREAD_ATTACH:
 break;
caseDLL_THREAD_DETACH:
 break; 
}
return1;
}

  g_hHook是挂钩子成功后返回的钩子句柄,须保存起来后面解钩使用。

  UnhookWindowsHookEx(g_hHook);

  就这么简单!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
进行DLL注入的三种方法
勾子基本概念
关于Hook
《windows核心编程系列》十八谈谈windows钩子
在Windows系统中用VC 实现钩子机制
[钩子技术]简单的鼠标钩子
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服