钩子函数如何正确卸载?我应该在合适的时候调用卸载函数?

Tr2CkEr 2005-03-14 10:48:18
还有就是,我如果程序异常退出,那么我安装的钩子是否会被系统释放而不会产生什么异常,那么下次安装钩子会不会受上次异常没有退出的钩子的影响?
...全文
171 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
outdream 2005-03-14
  • 打赏
  • 举报
回复
由于系统需要对每一条消息进行处理,因此钩子可能会降低系统性能。所以在钩子过程终止前,应用程序必须调用UnhookWindowsHookEx函数释放与该钩子过程相联系的系统资源。UnhookWindowsHookEx函数原型为:
BOOL UnhookWindowsHookEx(HHOOK hhook);
其中,参数hhook标识将被删除的钩子,它是先前由SetWindowsHookEx函数返回的钩子句柄。

异常退出的时候调用一下就可以了。
mintwlf 2005-03-14
  • 打赏
  • 举报
回复
如果你的全局钩子没有修改过,下次注册的时候就不注册了!
mintwlf 2005-03-14
  • 打赏
  • 举报
回复
如果时全局钩子,只要你的钩子没有问题,钩子依然存在,下次注册的时候系统会帮你再注册个新的。局部的钩子进程结束就释放了。
Tr2CkEr 2005-03-14
  • 打赏
  • 举报
回复
可能2楼的没有看懂我的意思,我的意思是比如我的程序已经运行了,他正在处于循环中,我调用任务管理器强行执行终止程序,那么我的钩子,系统会如何处理呢?

或者我自己的程序结束了也没有释放钩子,那么系统会如何处理?

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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