Здравствуйте, egvos4, Вы писали:
E>Здравствуйте, Carc, Вы писали:
C>>Копать в сторону GetWindowThreadProcessId + SendMessageTimeout
E>Функция GetWindowThreadProcessId получает указатель на окно, а возвращает указатель процесса. Думаю, нужно наоборот ))
Возвращает на указатель, а ID.
Сценарий примерно такой: перечисляем все окна верхнего уровня каким-нить EnumWindows, и ищем нужное окно по ID запущенного через ShellExecuteEx процесса браузера. Как из SHELLEXECUTEINFO::hProcess получить ID процесса это надо местных парней поспрошать: того же okman, omonim, x64 — они спецы в подобных вопросах, что-нить подскажут.
PS: только не забываем про права на процесс. Windows может и не разрешить так запросто отсылать окну чужого процесса какие-то сообщения. Но это уже детали (хотя и важные, вплоть до неработоспособности конкретного кода в конкретной ситуации). В конце концов можно как-то иначе попробовать завершить процесс... Ну я не знаю, попробовать внедрить в него свою DLL через какую нить SetWinEventHook, а уж из внедренной DLL слать сообщения (хотя и тут я не уверен, сдается мне проблема с правами доступа все равно останется и в этом случае).