全局钩子如何只加载特定几个程序
我设置了一个全局消息钩子,想钩住几个特定程序,在DllMain里的DLL_PROCESS_ATTACH里做判断,如果该模块是我想要钩的程序,则返回TRUE,如果不是则返回FALSE,这样就不加载我们的DLL,也可以为系统全局钩子减负。但是如果我返回FALSE,系统好像就卡死了。请问如何来做才是对的。
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
// 判断1
if (....)
return TRUE;
// 判断2
if (....)
return TRUE;
return FALSE;
}
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;