Re[8]: Как быстро и правильно закрыть процесс запущенный через ShellExecute?
От: Carc Россия http://www.amlpages.com/home.php
Дата: 11.03.13 09:04
Оценка:
Здравствуйте, egvos4, Вы писали:

E>Здравствуйте, Carc, Вы писали:


C>>Копать в сторону GetWindowThreadProcessId + SendMessageTimeout


E>Функция GetWindowThreadProcessId получает указатель на окно, а возвращает указатель процесса. Думаю, нужно наоборот ))

Возвращает на указатель, а ID.
Сценарий примерно такой: перечисляем все окна верхнего уровня каким-нить EnumWindows, и ищем нужное окно по ID запущенного через ShellExecuteEx процесса браузера. Как из SHELLEXECUTEINFO::hProcess получить ID процесса это надо местных парней поспрошать: того же okman, omonim, x64 — они спецы в подобных вопросах, что-нить подскажут.

PS: только не забываем про права на процесс. Windows может и не разрешить так запросто отсылать окну чужого процесса какие-то сообщения. Но это уже детали (хотя и важные, вплоть до неработоспособности конкретного кода в конкретной ситуации). В конце концов можно как-то иначе попробовать завершить процесс... Ну я не знаю, попробовать внедрить в него свою DLL через какую нить SetWinEventHook, а уж из внедренной DLL слать сообщения (хотя и тут я не уверен, сдается мне проблема с правами доступа все равно останется и в этом случае).
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.