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