Как определить, работает ли какое-либо приложение в полноэкранном режиме или выходит из полноэкранного режима? - PullRequest
0 голосов
/ 22 февраля 2019

Мне нужно отключить уведомления в моем приложении, когда есть другое полноэкранное приложение, такое как powerpoint или VLC, чтобы не беспокоить пользователя.

Пока я получаю этот код, но он всегда возвращает true.Есть ли какое-то приложение в полноэкранном режиме или нет.Я не уверен, должно ли это работать только для панелей приложений или панели задач.

HWND  hWnd;
hWnd = FindWindow(L"Shell_TrayWnd", nullptr);
if( hWnd )
{
    APPBARDATA apd;
    apd.cbSize = sizeof(APPBARDATA);
    apd.hWnd = hWnd;
    bool uState = bool(SHAppBarMessage(ABN_FULLSCREENAPP , &apd));
    if(uState)
        qDebug()<<"fullscreen";
    else
        qDebug()<<"not fullscreen";
}

1 Ответ

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

ABN_FULLSCREENAPP - это не сообщение, которое вы отправляете в оболочку, это сообщение, которое оболочка отправляет вам, когда приложение входит или выходит из полноэкранного режима.Сообщение отправляется владельцу панели приложения, созданной с помощью ABM_NEW.

Документация здесь .

Мое чтение документацииявляется то, что вам нужно создать панель приложения для получения этого сообщения, но вы можете установить нулевую высоту или ширину с помощью ABM_SETPOS, если хотите скрыть это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...