检测显示/隐藏任务视图(Win + Tab)

时间:2017-10-17 22:08:56

标签: winapi dwm windows-10-desktop

我正在开发Application Desktop Toolbar(下一个工具栏)。当全屏应用程序窗口打开或关闭时(例如通过 F11 ),工具栏会收到ABN_FULLSCREENAPP通知。当客户区占据整个屏幕时,窗口是全屏的。工具栏应该从最顶层的z顺序中取出,这样它们就不会覆盖全屏窗口。为此,我使用SetWindowPos()标记为HWND_BOTTOM/HWND_TOPMOST

问题:在Windows 10上打开全屏应用程序窗口时(例如,通过 F11 的资源管理器窗口)工具栏会收到ABN_FULLSCREENAPP并将自己发送到底部z-订购。然后,当按下 Win + Tab 时,将显示“任务视图”。任务视图占据屏幕的整个工作区域 - 整个屏幕不包括任务栏区域和工具栏区域。但工具栏仍保留在全屏窗口下方,Takbar显示在顶部,请参见下图。当TaskVew打开时,我希望工具栏也位于全屏窗口的顶部。

在打开任务视图期间,工具栏不会收到任何消息。显然,自Microsoft stopped开发ADT API以来,工具栏没有特别的消息。

可能的解决方案:
1)通过在全屏窗口的打开和关闭之间执行计时器中的功能,使用similar question中的解决方案;
2)将LowLevelKeyboardProc()SetWindowsHookEx()一起使用。

两种解决方案都不优雅。如果您知道检测打开/关闭TaskView的其他方法,请报告。未记录的方法也很有用。

Windows 10 Task View behaviour

0 个答案:

没有答案