Установить хук WH_GETMESSAGE делает систему мертвой - PullRequest
1 голос
/ 19 марта 2019

Я использую SetWindowsHookEx, чтобы установить глобальный хук GETMESSAGE в dll, как это:

SetWindowsHookEx(WH_GETMESSAGE,HookProc,hModule,0);

и процедура подключения в dll тоже. Но когда я позвонил InstallHook (эта функция экспортируется из DLL), чтобы установить хук GETMESSAGE, Booom, система не может реагировать на операции мыши, окна на рабочем столе могут будь рядом или двигайся), вот мой код 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, но я не знаю, как обработать сообщение. Я думаю, что кто-то другой должен иметь эту проблему тоже, так что, надеюсь, кто-нибудь окажет некоторую помощь и расскажет, как вы справляетесь с этой проблемой.

Большое спасибо.

...