Я не могу использовать GetAltTabInfo. Возможно глупая ошибка, но что с этим не так?
HWND taskSwitcher = FindWindow(L"TaskSwitcherWnd", L"Task Switching");
ALTTABINFO altTabInfo = {};
altTabInfo.cbSize = sizeof(ALTTABINFO);
GetAltTabInfo(taskSwitcher, -1, &altTabInfo, NULL, 0);
Я убедился, что taskSwitcher является окном переключения задач после вызова FindWindow (независимо от того, видимое оно или нет). Все поля altTabInfo остаются 0 после вызова GetAltTabInfo, кроме cbSize, который был установлен равным 40 при назначении sizeof (ALTTABINFO). Я пробую это на машине с Windows 7.
Альтернативные методы извлечения количества окон?
Спасибо
Редактировать: Хорошо, я только что понял, что могу получить информацию об ошибке. Результирующее значение вызова GetAltTabInfo действительно равно 0, и GetLastError дает мне либо 1400 (недопустимый дескриптор окна), либо 1168 (элемент не найден), если я укажу NULL для параметра hwnd (в конце концов он был определен как __in_opt). Так что, думаю, я пропускаю не то окно. Что является правильным, если не тот, который возвращается FindWindow (L "TaskSwitcherWnd", L "Переключение задач")? MSDN сообщает мне только о параметре hwnd: «Это окно должно быть окном переключения приложений».