"Изящно" убивая процесс
Прямо сейчас я использую процесс.Kill () - убить процесс. Есть ли способ, однако, вместо того, чтобы просто убить его немедленно, что я могу, как отправить сообщение процессу, инструктируя его закрыть, чтобы он мог изящно очистить и закрыть. В принципе, я ищу эквивент, чтобы просто щелкнуть красный крестик в верхнем правом углу, который, как я полагаю, действительно отправляет сообщение приложению с просьбой о закрытии.
3 ответа:
Если процесс имеет интерфейс windows (как вы называете красный "X"), вы можете попробовать
Process.CloseMainWindow()
. Если это не удается,вы можете вернуться кProcess.Kill()
.
Убийство не может быть изящным, возможно, вы можете сигнализировать процесс совершения самоубийства. Для сигнализации у вас есть много вариантов.
- SendMessage
- NamedPipes
- Именованный Мьютекс
- сокеты
Это будет зависеть от процесса, который вы убиваете. Как указано на соответствующей странице для
Process.Kill
, "Kill-это единственный способ завершить процессы, которые не имеют графических интерфейсов."Если есть графическое окно, то идите с ответом lc выше;Process.CloseMainWindow
функционирует как красный X, о котором вы упомянули.