> Как можно получить список окон, которые отображаются на таскбаре.
> Список процессов получить могу, но как из них выделить нужные не знаю.
> Пробовал сделать EnumChildWindows у таскбара, но такой фокус не
> прошел.
>
Что-то много здесь было мудреных ответов. Возможно,
я чего-то не понимаю, но решение проще.
Смотрим раздел MSDN "Handling the Taskbar", подраздел
"Visibility of Taskbar Buttons" (или вроде того).
Там сказано, что на панели задач отображаются кнопки
для видимых окон без владельца, которые к тому же
не имеют стиля WS_EX_TOOLWINDOW.
Получается простой перебор:
BOOL CALLBACK EnumProc(HWND hwnd,LPARAM lParam) {
TCHAR szTitle[256];
if(IsWindowVisible(hwnd)&&(GetWindow(hwnd,GW_OWNER)==0)&&
((GetWindowLong(hwnd,GWL_EXSTYLE)&WS_EX_TOOLWINDOW)==0)) {
GetWindowText(hwnd,szTitle,sizeof(szTitle));
printf("%s\n",szTitle);
}
return TRUE;
}
int main(void) {
EnumWindows(EnumProc,0);
return 0;
}
Затем при желании можно узнать идентификатор процесса,
которому принадлежит окно с помощью
GetWindowThreadProcessId.
Номер выпуска : 4942
Возраст листа : 739 (дней)
Количество подписчиков : 533
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/445595
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru