Как получить текущие открытые приложения в Windows, используя C ++ или VB.net? - PullRequest
3 голосов
/ 24 января 2010

Мне нужны текущие открытые приложения (те, которые отображаются на панели задач), а НЕ текущие запущенные процессы.

спасибо

1 Ответ

4 голосов
/ 24 января 2010

Вам необходимо перечислить все окна верхнего уровня (с функцией EnumWindows ); Вы должны пропустить:

  • невидимые окна (проверьте возвращаемое значение функции IsWindowVisible или непосредственно проверьте, имеет ли окно стиль WS_VISIBLE);
  • окна с расширенным стилем WS_EX_TOOLWINDOW, если они не имеют также расширенный стиль WS_EX_APPWINDOW.

Все остальные должны отображаться на панели задач ( здесь - это полная история).

Затем, если вы хотите получить процесс / поток, владеющий каждым окном, вы можете использовать функцию GetWindowThreadProcessId .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...