关于钩子的一些疑问——SetWindowHookEx
A.exe调用B.dll里提供的SetHook(调用SetWindowHookEx)接口进行挂钩——线程钩子
挂钩目标程序C.exe
1、一旦C.exe关闭,那么已挂的钩子系统会自动清理掉吧,原来的钩子句柄应该没有用了吧?
2、如果是A.exe关闭呢,已挂的钩子系统会自动清理掉???这会是什么情况??
3、经常说的钩子程序到底是指的A.exe还是C.exe?
目前遇到的问题:关闭A.exe 经常导致C.exe程序崩溃掉
我说错了
A.exe关闭时会自动Unhook,Unhook后B.dll就不是C.exe的模块了
你是不是子类化了C.exe的窗口,并且访问了B.dll的变量?
[解决办法]
如果你子类化了C.exe的窗口,而新的窗口过程函数是写在B.dll里的
Unhook但又不UnSubClass,C.exe就会因为无法访问窗口过程函数而崩溃了