Блокировка фоновых приложений от получения сообщений - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь заблокировать фоновое приложение от получения событий мыши.Несмотря на то, что дескриптор цели сообщения совпадает с окном переднего плана, фоновое приложение все равно получает мои события мыши, если я наведу на него курсор.

Я также пытался перехватить WH_MOUSE_LL, но MSLLHOOKSTRUCT просто не обеспечиваетдостаточно информации для их фильтрации.

MSG msg = {0};
while(GetMessage(&msg, reinterpret_cast<HWND>(-1), 0, 0) > 0)
{
    if (msg.hwnd == GetForegroundWindow())
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

Я ожидал, что фоновое окно не получит никаких событий, если оно было в фоновом режиме.

1 Ответ

0 голосов
/ 22 апреля 2019

В частности, для сообщений мыши есть решение.

Окно переднего плана может вызвать SetCapture, и тогда все последующие сообщения мыши будут доставлены на него, даже если за его пределами.

...