| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Поймать окна ишака только что открытого мной |
| Автор: null56 21.5.2010, 19:41 | ||
| Всем привет Задача: Просмотреть все окна, принадлежащие ТОЛЬКО ЧТО открытому мной, с помощью CreateProcess, приложению Internet Explorer. Как бы страшно не звучало, на коде думаю будет проще
Проще говоря, нужно запустить ишака и прочитать заголовки его окон первого и второго уровня... ПРОБЛЕМА НЕ В ПРОГРАММЕ!!!! Код я привел для того, чтобы было проще понять, чего хочу, проблема в самом ишаке... Проблема: код моей программы отработает только в том случае, если в системе еще не запущены приложения internet explorer (8 версия, вроде). Если в системе ранее уже запущен ишак, то мне после CreateProcess в processId и threadId уже вернется непонятно что, значения, но эти значения не актуальны для моей задачи, идентификатора процесса такого я не вижу в диспетчере задач, но самое печальное, что EnumThreadWindows уже не отрабатывает. Я не буду спрашивать, что не так в моем коде, а хочу узнать, есть ли возможность поймать окно Internet Explorer запущенное непосредственно мной после вызова функции CreateProcess? Спасибо ЗЫ: способ искать все окна в системе по идентификатору исключаю, хочется более быстрого решения |
| Автор: null56 22.5.2010, 14:27 |
| Жаль, спасибо большое Добавлено через 2 минуты и 14 секунд Хотя можно попробовать в таком случае найти среди процессов ишак, извлечь идентификатор и пробежаться по его окнам, может прокатит Добавлено через 5 минут и 16 секунд думаю, это будет быстрее, чем просматривать все окна в системе |
| Автор: null56 27.5.2010, 14:35 |
| xvr Интересный факт я нашел.... Если порождать процессы ишака в невидимом режиме (wShowWindow = SW_HIDE;), то тогда ишак порождает "реально новые" процессы при чем постоянно новые, то есть значения ProcessId актуален, так же как и хендл Как думаешь это надежный факт запуска с сохранением идентификатора процесса или это версионная привязка? |
| Автор: xvr 27.5.2010, 15:15 | ||
|
| Автор: null56 27.5.2010, 15:26 |
| Мне как раз скрытый нужен. Зачем мне отображать окна, если могу ему отправить сообщения на обновление и закрытие. Задача вообще такая: запусить ишака (желательно в скрытом режиме), найти окно по заголовку, который мне известен, так как я скармливаю при запуске ишаку файл. Далее ищу окно и периодически его обновляю, в конце его закрываю Так что думаешь в других версиях ишака надеяться на то, что этим способом я сохраню себе идентификатор процесса после CreateProcess не стоит? |
| Автор: xvr 27.5.2010, 16:09 | ||||
|
| Автор: null56 27.5.2010, 16:42 |
| низя ( да, скорее всего надеятся на "фичу" не стоит... а можно ли зная HWND окна проверить существует ли оно действительно в системе? |
| Автор: null56 27.5.2010, 17:21 |
| скорее всего postMessage вернет FALSE, ладно, буду пробовать xvr, спасибо тебе за помощь |
| Автор: GremlinProg 28.5.2010, 08:04 | ||||
|
| Автор: null56 28.5.2010, 20:49 |
| пасибо |