Страница: 1 |
Страница: 1 |
Вопрос: Что я запустил?!
Добавлено: 18.06.09 08:58
Автор вопроса: VβÐUηìt | Web-сайт:
Хорошо было бы, если бы ShellExecute возвращала hWnd окна запускаемой проги. Но вроде это не так. А как все-таки можно узнать hWnd окна, которое я запускаю?
Заранее благодарен.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #1
Добавлено: 18.06.09 14:15
ShellExecute просто запускает программу. У нее может вообще окон не быть. Так что шелэкзикьюту пофиг на hwnd) Придется как-то извращаться вручную
Номер ответа: 2
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #2
Добавлено: 18.06.09 14:34
Запускай через Shell, она по-моему, возвращает PID процесса, а потом, исходя из этого ищи hWnd окон процесса. Поправьте, если не прав, так как давно под Windows не писал.
Номер ответа: 3
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #3
Добавлено: 18.06.09 15:56
CreateProcess юзай чтобы pid и tid получить. а дальше делай енаминг окошек и проверяй GetWindowThreadProcessId() и проверяй второй параметр этой функции, он возвращает по ссылке pid процесса, которому принадлежит окно.
LPDWORD lpdwProcessId
проверять есесно с тем пидом, который вернул CreateProcess.
Если нада именно ShellExecute то еще придется делать енаминг процессов и искать тот, который имеет командную строку, которую ты ему передал(или имя исполняемого файла), чтобы получить pid.
Хотя мож есть вариант попроще, но чтото мне в голову только такое приходит.
Номер ответа: 4
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #4
Добавлено: 18.06.09 17:40
O_O ладно