为什么我的全局钩子安装后不能删除

panther8888 2005-11-12 05:19:16
把一个全局键盘钩子放在一个DLL中,在DLL—PROCESS—ATTACH中安装钩子,在DLL—PROCESS-DETACH中删除钩子,可是只要安装一次之后就没办法删除,多次调用UnhookWindowsHookEx都会返回true。
...全文
63 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
VxD1 2005-11-13
  • 打赏
  • 举报
回复
把一个全局键盘钩子放在一个DLL中,在DLL—PROCESS—ATTACH中安装钩子,在DLL—PROCESS-DETACH中删除钩子,可是只要安装一次之后就没办法删除,多次调用UnhookWindowsHookEx都会返回true。
>>不能在DLL-PROCESS-ATTACH中安装钩子,也不能在DLL-PROCESS-DETACH中删除钩子,
一般都在自己写的应用程序中安装钩子,然后当首次拦截到消息时dll会被注入到相应的进程中或者所有的进程中.
建议看看候捷翻的<windows编程指引>的相关章节
大熊猫侯佩 2005-11-13
  • 打赏
  • 举报
回复
你是用 setwindowshookex 然后将 dwthreadid 设为 null 来安装hook的么?
这样的话是在系统所有可能的线程中加在该 dll,然后你在 DLL—PROCESS—ATTACH
中加入 setwindowshookex ,若有 100个 thread 你必须等 他们全部
DLL—PROCESS-DETACH 才可以 unhook it.

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧