В C# i, используя process.Kill(), убивает процесс, в то же время в убитом приложении, как обнаружить это событие?Как обнаружить событие Kill Process
BTW: Приложение.ApplicationExit событие не было уволено!
В C# i, используя process.Kill(), убивает процесс, в то же время в убитом приложении, как обнаружить это событие?Как обнаружить событие Kill Process
BTW: Приложение.ApplicationExit событие не было уволено!
если это WinForm, вы можете захватить событие FormClosing
и проверить CloseReason
:
None
WindowsShutDown
MdiFormClosing
UserClosing
TaskManagerClosing
FormOwnerClosing
ApplicationExitCall
Но если вы используете метод process.Kill(), событие FormClosing не было запущено – guaike
@guaike, то есть способ OS, он не может дать вам причину, когда он насильственно убит. –
Там нет простых способов достижения этого, хотя код инъекционного, API подсекать, а также ряд других методов может быть использованным для достижения этой цели, но мой вопрос для вас: действительно ли вы хотите пройти много дополнительной работы, чтобы убедиться, что ваше приложение знает о неожиданном завершении? Вы должны были бы убедиться, что вы вводили код (или любой другой метод, выбранный вами) любым возможным методом, который кто-то мог использовать для прекращения вашего приложения, когда кто-то делает один из этих вызовов, ваше приложение может инициировать свое собственное событие, указывая, что оно должно обработать такое событие и подготовиться к выходу. По сути, вы также можете использовать это, чтобы кто-либо еще не смог закрыть ваше приложение.
Если вы хотите получить дополнительную информацию о любом из этих методов, дайте мне знать, и я отправлю некоторые ссылки. Удачи!
Привет, меня интересует эта тема. Не могли бы вы предоставить некоторые ссылки, где я могу больше узнать об этом? Заранее спасибо. – kamilw
Возможно, это не в духе вашего вопроса, но важно отметить, что всегда существует механизм, позволяющий пользователю принудительно убить ваш процесс, не позволяя процессу «обрабатывать» или «обнаруживать» событие. Что вы пытаетесь сделать в своем «детектирующем» коде? – reuben
@Reuben Если закрыть окно или закрыть приложение, я сохраню некоторые данные, и это необходимо для моего приложения. – guaike
Моя точка зрения заключается в том, что вы не можете * зависеть * от получения возможности сохранять данные, особенно в случае неожиданного завершения вашего процесса. Вы можете, конечно, попытаться сделать это как можно больше, но вы должны знать, что всегда будет какое-то событие, которое может привести к выходу вашего приложения, не давая вам возможности сохранить данные. (Например, шнур питания системы можно отключить.) Я не хочу быть придирчивым, я просто хотел указать на это другим людям с похожим вопросом. – reuben