Я пытаюсь найти все окна ЛЮБОГО вида, которые открыты (и имеют «кнопку» на панели задач).
У меня нет проблем с поиском списков процессов / hWnd, а затем циклически их повторяю, но как мне определить, есть ли у процесса / hwnd открытое окно? (даже если свернуто).
Я пытался делать разные комбинации параметров окна (например, WS_POPUP и т. Д.), Но ни один из параметров (или комбинаций параметров), которые я мог бы найти, не дал бы мне все открытые окна без каких-либо ложных срабатываний. В качестве примера ложного срабатывания можно привести тот факт, что он дает мне два «окна» для Google Talk (хотя одно из них было открыто). Еще один ложный позитив - рассматривать меню «Пуск» как открытое окно.
Есть идеи? Решения? Я работал над этим некоторое время, и это сводило меня с ума.
Примечание: я делаю это для Windows 7 (на данный момент). Я не уверен, есть ли какая-то разница между тем, как вы будете делать это между XP и 7, но я подумал, что это может быть актуально.