如何检测是否有任何应用程序进入全屏或退出全屏?
How to detect if any app goes fullscreen or exiting fullscreen?
当有另一个应用程序全屏(如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";
}
ABN_FULLSCREENAPP
不是发送到 shell 的消息,而是当应用程序进入或离开全屏模式时 shell 发送给你的消息。 该消息将发送给使用ABM_NEW
创建的应用栏的所有者。
文档在这里。
我对文档的解读是,您必须创建一个应用栏才能接收此消息,但如果要隐藏它,您可以使用ABM_SETPOS
将其设置为零高度或宽度。
相关文章:
- C++控制台应用程序阻止退出
- boost::asio::io_service 在线程中,不会在应用程序退出时退出
- 我在哪里编写在退出 C++ 窗口窗体应用程序之前执行的代码部分
- 正确退出 gtkmm 应用程序
- OpenGL 应用程序退出,退出代码为 -1073741515 (0xC0000135)
- 即使主窗口关闭,也不会退出应用程序
- 对 QMainWindow 使用 std::unique_ptr 时退出时出现 QT 应用程序分段错误
- 我如何使Ctrl Q退出一个没有Menubar的QT5应用程序
- C++11 监视器类,测试应用程序不想退出
- 仅在我退出应用程序后,使用Cout.write()函数在控制台上打印字符串
- 当我要退出应用程序时,如何在QT中自动调用destructor
- 在另一个线程正在运行的情况下退出应用程序时出错
- 在退出应用程序时安全退出Qt线程
- c++允许后台线程在退出应用程序之前完成
- QT/C++,OS X:退出应用程序时可选择隐藏(),以便应用程序继续运行,并在单击dock中的图标后再次显示
- 退出应用程序时崩溃
- 在某些设备上退出应用程序后仍保留进程
- 退出应用程序前关闭线程
- Win32 c++ openprocess应该返回null,如果用户已经退出应用程序,但没有
- 日志文件不可见,除非用户退出应用程序