如何检索MSTaskListWClass
hWnd
我指的是“正在运行的应用程序”工具栏,它显示任务栏中每个窗口的按钮。
我试着用:
HWND mstask = FindWindow(L"MSTaskListWClass", NULL);
DWORD err = GetLastError();
但是mstask
返回null,err
输出0
发布于 2022-08-16 06:36:18
FindWindowW
只检索顶层窗口的句柄。不是为了孩子的窗户。因此需要首先搜索父窗口"Shell_TrayWnd“,而不是使用EnumChildWindows
。
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;
}
https://stackoverflow.com/questions/73368437
复制相似问题