C #, C ++, WinAPI - получить количество окон из другого процесса - PullRequest
1 голос
/ 30 мая 2011

Это может быть ответ на C # или C ++ или WinAPI (я знаю, как pInvoke).

Чего я хочу добиться.Я хочу получить количество окон, которые открываются другим приложением.Например, у меня есть приложение чата.Я хочу получить количество окон, потому что я не хочу определять, посылает ли кто-нибудь мне сообщение (Новое входящее сообщение = еще одно окно).

Короче говоря.Как получить количество окон, открытых другим процессом.

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Если у вас есть идентификатор процесса другого приложения, вот возможный способ Windows API:

Перечисление всех окон верхнего уровня с помощью функции EnumWindows , используя GetWindowThreadProcessId в функции обратного вызова для проверки основных окон, принадлежащих вашему заданному процессу.Из соответствующих основных окон вы можете продолжить перечисление всех его дочерних окон с помощью EnumChildWindows .

1 голос
/ 30 мая 2011

Во-первых, вам нужен дескриптор окна верхнего уровня. FindWindow () извлекает его, если вы знаете имя окна.

Второй шаг уже описывался несколько раз в SO:

.NET(C #): Получение дочерних окон, когда у вас есть только дескриптор процесса или PID?

Как я могу получить дочерние окна окна, учитывая его HWND?

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