Проблема с EnumWindows - PullRequest
       15

Проблема с EnumWindows

0 голосов
/ 04 июня 2010

При перечислении окон с помощью EnumWindows я получаю сотни дескрипторов вместо одного на каждое открытое окно на моем рабочем столе.

Прежде всего, мне любопытно, если это правильное поведение.

Во-вторых, попытка получить разницу между открытыми окнами до и после запуска процесса возвращает 15-20 новых дескрипторов. Мне интересно, есть ли способ отфильтровать их по какому-либо флагу, мне действительно нужен только дескриптор главного окна.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 04 июня 2010

Чтобы получить главное окно процесса, используйте свойство Process.MainWindowHandle .

Чтобы ответить на ваш вопрос, вы можете точно увидеть, что все дескрипторы используют Spy ++.
Короче говоря, многие приложения будут создавать скрытые окна для запуска циклов сообщений.

0 голосов
/ 04 июня 2010

Вы можете фильтровать в обратном вызове enum, проверяя IsWindowVisible() и игнорируя невидимые окна системы / приемника сообщений.

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