首页
社区
课程
招聘
[求助]WIN7 64位 下使用SetWindowsHookEx设置全局钩子的问题
发表于: 2011-11-17 11:24 12517

[求助]WIN7 64位 下使用SetWindowsHookEx设置全局钩子的问题

2011-11-17 11:24
12517
我做的一个程序用到全局钩子 和 API钩子, 用的技术是SetWindowsHookEx和MHOOK, 在 winXP和win7 32位下都正常运行,但是在WIN7 64位模式下,有的程序就没有反应,索说明没有注入成功,

使用Tasklist命令查看,像explorer.exe等系统进程都可以成功,但是WINWORD 、IEXPLORE.exe则不行。

然后我怀疑是因为消息没有响应的原因,使用VS2010里的spy++ 64位 查看 WORD和 IE进程,确实一个消息都收不到,这时我看到任务管理器进程里 WINWORD后面有个 *32字样, 于是我用spy++ 32位 查看,这时才可以正常捕获到消息循环。

我怀疑可能是这个原因照成我的 WH_GETMESSAGE钩子勾不到这些32位的程序,但是我还没想到什么具体的解决办法,请大家帮帮忙~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 151
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
上网搜索了一下,发现SetWindowsHookEx的解释:
SetWindowsHookEx can be used to inject a DLL into another process. A 32-bit DLL cannot be injected into a 64-bit process, and a 64-bit DLL cannot be injected into a 32-bit process. If an application requires the use of hooks in other processes, it is required that a 32-bit application call SetWindowsHookEx to inject a 32-bit DLL into 32-bit processes, and a 64-bit application call SetWindowsHookEx to inject a 64-bit DLL into 64-bit processes. The 32-bit and 64-bit DLLs must have different names.

难道说真的要弄两个dll? - -b
2011-11-17 11:31
0
游客
登录 | 注册 方可回帖
返回
//