Re[3]: Как быстро и правильно закрыть процесс запущенный через ShellExecute?
От: okman Беларусь https://searchinform.ru/
Дата: 09.03.13 18:25
Оценка: +1
Здравствуйте, egvos4, Вы писали:

E>Как пишет Джефри Рихтер, не желательно принудительно уничтожать процесс из другого процесса путем вызова TerminateProcess. Желательно, чтобы сам первоначальный процесс вызвал у себя ExitProcess и корректно завершился. Соответственно вопрос в том как правильно передать команду процессу, в моем случае одному из четырех запущенных браузеров для их корректного закрытия. Например как-то передать WM_CLOSE? Есть идеи?


WM_CLOSE эквивалентен нажатию на кнопку "закрыть" в правом углу окна.
Что еще вовсе не означает завершение всей программы. Например, браузер запустился и
показывает пользователю диалог: "данная программа не является браузером по умолчанию",
предлагая сделать ее таковой. WM_CLOSE закроет это окно, а основное окно останется висеть.

TerminateProcess нежелателен тем, что после него данные, которыми оперировала программа,
могут остаться в несогласованном состоянии. Точно также, как и в случае аварийного завершения.
Но с другой стороны, TerminateProcess дает наиболее сильную гарантию завершения процесса и
если альтернатив не видно, я бы использовал эту функцию, не особо стесняясь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.