关于全局hook的问题

CoolHg 2000-09-24 02:09:00
最近写了一个程序,要用到全局鼠标hook,可是只能在当前调用DLL的进程中使用,而且调用SetHookEx时若最后一个参数若用0的话不能成功调用(用GetCurrentThreadID时可以),但我以前编了一个键盘全局hook的程序又能正常运行(我是在NT4.0下编写的).
请问各位高手问题出在了什么地方?
<a href = "CoolHg@21cn.com"></a>
...全文
208 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CoolHg 2000-09-26
搞定了
原来我是把DllMain中的hModule保存到一个全局变量中用在SetwindowsHook中了
  • 打赏
  • 举报
回复
ab 2000-09-26
同意killjapan05的看法:
hMouseHook = SetWindowsHookEx(WH_MOUSE, (HOOKPROC)MyMouseProc, GetModuleHandle("MyMouseHookProcInThis.DLL"), 0);
  • 打赏
  • 举报
回复
killjapan05 2000-09-26

若最後的参数值dwThreadId为0,则第二个参数值lpfn指向的钩子一定在dll中。否则不能安装。
若你想把钩子放在同一进程中,dwThreadId为你当前进程ID,但只能截获此进程的消息。
要想截获所有进程的消息,dwThreadId一定要为0,因此钩子一定要在dll中。
  • 打赏
  • 举报
回复
CoolHg 2000-09-26
to lgs
我的邮箱在 CoolHg@21cn.com
谢了先
  • 打赏
  • 举报
回复
lgs 2000-09-25
我这里有个简单的全局鼠标的hook的例子,线程参数为0调用成功,我发给你。准备收邮件。
  • 打赏
  • 举报
回复
oldworm 2000-09-25
键盘全局Hook我以前也写过,对于全局窗口激活等也都是没有问题的,全局鼠标Hook有问题我也不甚清楚,如果这个东西确实有特殊处理的话我也想知道。
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
申请成为版主
帖子事件
创建了帖子
2000-09-24 02:09
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……