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

Tr2CkEr 2005-03-14 10:48:18
还有就是,我如果程序异常退出,那么我安装的钩子是否会被系统释放而不会产生什么异常,那么下次安装钩子会不会受上次异常没有退出的钩子的影响?
...全文
37 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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楼的没有看懂我的意思,我的意思是比如我的程序已经运行了,他正在处于循环中,我调用任务管理器强行执行终止程序,那么我的钩子,系统会如何处理呢?

或者我自己的程序结束了也没有释放钩子,那么系统会如何处理?
回复
相关推荐
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2005-03-14 10:48
社区公告
暂无公告