Подтвердить что ты не робот

"Изящно" убивает процесс

Сейчас я использую Process.Kill(), чтобы убить процесс. Есть ли способ, но вместо того, чтобы просто убить его немедленно, я могу отправить сообщение в процесс, инструктирующее его закрыть, чтобы он мог изящно очистить и закрыть. В принципе, я ищу равного, просто щелкнув красный X в верхнем правом углу, который, я считаю, отправляет сообщение в приложение, требующее закрытия.

4b9b3361

Ответ 1

Если процесс имеет интерфейс Windows (как вы относитесь к красному "X" ), вы можете попробовать Process.CloseMainWindow(). Если это не удается, вы можете вернуться к Process.Kill().

Ответ 2

Убийство не может быть изящным, возможно, вы можете сигнализировать о процессе совершения самоубийства. Для сигнализации у вас есть много вариантов.

  • SendMessage
  • NamedPipes
  • Именованный Mutex
  • Розетки

Ответ 3

Это будет зависеть от процесса, который вы убиваете. Как указано на соответствующей странице Process.Kill, "Kill - единственный способ прекратить процессы, которые не имеют графических интерфейсов". Если есть графическое окно, тогда перейдите с ответом на lc выше; Process.CloseMainWindow функционирует как красный X, о котором вы говорили.