检测Win + Tab任务视图

问题描述 投票:0回答:1

在Windows 10上,您可以按Win + Tab以获取所有窗口的“任务视图”视图。我试图在任何给定时间检查它是否有效。我尝试使用WH_KEYBOARD_LL的低级键盘钩,但这只允许我检测按键,而不是切换器处于活动状态。我查看了Windows DWM API,但也没有找到任何其他内容。

我也尝试过使用EnumWindows()EnumChildWindows(GetDesktopWindow(), ...),并且在显示和隐藏任务视图之间的输出中没有发现任何差异。

有没有准确的方法来检测是否显示?

c winapi dwm
1个回答
1
投票

这是一个与我的Windows版本(1709 build 16299.125)非常一致的解决方案,并且不需要处理器密集调用EnumChildWindows

bool isTaskView() {
    //Get foreground window's name
    HWND fgWindow = GetForegroundWindow();
    TCHAR windowName[MAX_PATH] = L"";
    GetWindowText(fgWindow, windowName, MAX_PATH);
    //Compare with magic string name of Task View's window
    std::wstring nameStr(windowName);
    return nameStr == L"Task View";
}
© www.soinside.com 2019 - 2024. All rights reserved.