| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2801 人关注过本帖
标题:关于SetWindowsHookEx函数的参数问题
只看楼主 加入收藏
冰的热度
Rank: 2
等 级:禁止访问
威 望:5
帖 子:404
专家分:0
注 册:2006-12-2
收藏
 问题点数:0 回复次数:8 
关于SetWindowsHookEx函数的参数问题
函数原型是这样的:
HHOOK SetWindowsHookEx(
  int idHook,        // type of hook to install
  HOOKPROC lpfn,     // address of hook procedure
  HINSTANCE hMod,    // handle to application instance
  DWORD dwThreadId   // identity of thread to install hook for
);

第四个参数是thread ID,也就是说,是线程ID,而不是进程ID,
现在我获得了explorer.exe的进程ID,传给它,确实是没有挂上钩子。
如果把它设为0,就可以挂上,但是此时是所有线程全都挂上了。
我现在就想让它挂在explorer.exe上,怎么办呢?

或者,我就是想让他只挂在QQ.exe上,怎么传这个参数呢?

传进程ID根本挂不上。
而线程ID我怎么得到呢?

注意:
我用的是Detours技术
搜索更多相关主题的帖子: 函数 参数 hook thread 线程 
2008-04-25 14:00
radcat
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:306
专家分:45
注 册:2006-9-12
收藏
得分:0 
第三个参数会响影第四个设挂入的为线程或全局

2008-04-25 14:10
冰的热度
Rank: 2
等 级:禁止访问
威 望:5
帖 子:404
专家分:0
注 册:2006-12-2
收藏
得分:0 
回复 2# 的帖子
怎么改呢?

科学是永恒之迷...... 我的博客http://blog..cn/u/1267727974 阅读我的blog,懂与不懂都是收获!
2008-04-25 14:11
radcat
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:306
专家分:45
注 册:2006-9-12
收藏
得分:0 
你如果传给它IE的进程ID,就挂这个的,如果是0,那它就全挂了,MSDN上看到的,不过我做过全挂的,没做过单独的,你可以试下看看,另外代码一定是在dll中的吧

2008-04-25 14:18
冰的热度
Rank: 2
等 级:禁止访问
威 望:5
帖 子:404
专家分:0
注 册:2006-12-2
收藏
得分:0 
当然是在DLL中了,我传的是QQ的进程ID,挂不上,
后来又传explorer的进程ID,还是挂不上,
但是一改成0,就挂上了。

所以我怀疑不是传进程ID,而是传线程ID。
而且MSDN上的描述也说明是线程ID。

问题是,我怎么得到线程ID?

科学是永恒之迷...... 我的博客http://blog..cn/u/1267727974 阅读我的blog,懂与不懂都是收获!
2008-04-25 14:24
冰的热度
Rank: 2
等 级:禁止访问
威 望:5
帖 子:404
专家分:0
注 册:2006-12-2
收藏
得分:0 
现在,我用spy++获得某个聊天窗口的线程ID,然后直接赋值给tID,但是没HOOK上,这是为什么呢?
代码如下:

HOOKPROC hkprcMsgProc=NULL; //the pointer of MsgProc()
static HINSTANCE hinstDLL=NULL; //the handle of dll!
static HHOOK hhookMsg=NULL; //the handle of hook!
DWORD tID=3464; //a thread id
hinstDLL = LoadLibrary((LPCTSTR) "QQDetours.dll");
hkprcMsgProc = (HOOKPROC)GetProcAddress(hinstDLL, "MsgProc");
hhookMsg = SetWindowsHookEx(WH_GETMESSAGE,hkprcMsgProc,hinstDLL,tID);

科学是永恒之迷...... 我的博客http://blog..cn/u/1267727974 阅读我的blog,懂与不懂都是收获!
2008-04-28 11:21
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我也想知道..有那个知道的可以说下..谢谢

学习需要安静。。海盗要重新来过。。
2008-04-29 12:22
冰的热度
Rank: 2
等 级:禁止访问
威 望:5
帖 子:404
专家分:0
注 册:2006-12-2
收藏
得分:0 
问题已解决

科学是永恒之迷...... 我的博客http://blog..cn/u/1267727974 阅读我的blog,懂与不懂都是收获!
2008-04-29 15:13
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
可以把你写的发份我看看?kdsun@ thanks

学习需要安静。。海盗要重新来过。。
2008-04-29 15:16
快速回复:关于SetWindowsHookEx函数的参数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012232 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved