设置WH_GETMESSAGE挂钩会使系统死机

时间:2019-03-19 11:34:12

标签: windows setwindowshookex

我使用SetWindowsHookEx在这样的dll中安装全局GETMESSAGE钩子:

SetWindowsHookEx(WH_GETMESSAGE,HookProc,hModule,0);

以及dll中的钩子过程。但是当我调用InstallHook(此函数从DLL导出)以安装GETMESSAGE钩子时,系统无法响应鼠标操作,因此桌面上的Windows可以关闭或移动),这是我的HookProc代码:

LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode < 0)
    {
        return CallNextHookEx(NULL, nCode, wParam, lParam);
    }

    WCHAR szMsg[MAX_PATH] = { 0 };
    PMSG pMsg = (PMSG)lParam;
    wsprintf(szMsg, L"MSG_FROM:%08x,MSG_TYPE:%d", pMsg->hwnd,pMsg->message);
    OutputDebugString(szMsg);
    return CallNextHookEx(NULL,nCode, wParam, lParam);
}

我已经阅读了MSDN多次,它只是说如果ncode是HC_ACTION,则必须处理该消息,但是,我不知道如何处理该消息。我认为肯定还有其他人遇到此问题因此,也希望有人能提供帮助,并告诉我您如何处理此麻烦。

非常感谢。

0 个答案:

没有答案