首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得任务栏MSTaskListWClass的HWND?

如何获得任务栏MSTaskListWClass的HWND?
EN

Stack Overflow用户
提问于 2022-08-16 03:20:47
回答 1查看 111关注 0票数 0

如何检索MSTaskListWClass hWnd

我指的是“正在运行的应用程序”工具栏,它显示任务栏中每个窗口的按钮。

我试着用:

代码语言:javascript
运行
复制
HWND mstask = FindWindow(L"MSTaskListWClass", NULL);
DWORD err = GetLastError();

但是mstask返回null,err输出0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-16 06:36:18

FindWindowW只检索顶层窗口的句柄。不是为了孩子的窗户。因此需要首先搜索父窗口"Shell_TrayWnd“,而不是使用EnumChildWindows

代码语言:javascript
运行
复制
BOOL CALLBACK EnumChild(HWND hwnd, LPARAM lParam)
{
    WCHAR name[32];
    if (GetClassNameW(hwnd, name, _countof(name)) && !wcscmp(name, L"MSTaskListWClass"))
    {
        *(HWND*)lParam = hwnd;
        return FALSE;
    }

    return TRUE;
}

HWND GetMSTaskListW()
{
    HWND hwnd = 0;
    if (HWND hWndParent = FindWindowW(L"Shell_TrayWnd", 0))
    {
        EnumChildWindows(hWndParent, EnumChild, (LPARAM)&hwnd);
    }

    return hwnd;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73368437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档