15,471
社区成员
发帖
与我相关
我的任务
分享
LRESULT CALLBACK DebugProc(int nCode, WPARAM wParam, LPARAM lParam) //WH_DEBUG钩子例程
{
DEBUGHOOKINFO *debug=(DEBUGHOOKINFO *)lParam;
//防止键盘被监听
if(debug->idThread!=debug->idThreadInstaller && wParam== WH_KEYBOARD)
{
return 1;
}
return ::CallNextHookEx(DEBUG_hhook, nCode, wParam ,lParam);
}
BOOL APIENTRY DllMain( HINSTANCE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
handle = hModule;
return TRUE;
}
bool WINAPI InstallHook()
{
DEBUG_hhook =::SetWindowsHookEx(WH_DEBUG,(HOOKPROC)DebugProc,handle, NULL);
if(DEBUG_hhook == NULL)
return false;
return true;
}
bool WINAPI UnInstallHook()
{
UnhookWindowsHookEx(DEBUG_hhook);
return true;
}