tags:

views:

907

answers:

2

In C# i using process.Kill() kill a process, at the same time in killed application how to detect this event?

BTW: Application.ApplicationExit event has not been fired!

A: 

if it's a winform, you can capture the event FormClosing and check the CloseReason:

None
WindowsShutDown
MdiFormClosing
UserClosing
TaskManagerClosing
FormOwnerClosing
ApplicationExitCall
najmeddine
But if using process.Kill() method ,FormClosing event has not been fired
guaike
@guaike, thats the way OS is, it cant give you a reason when it is forcibly killed.
Akash Kava
A: 

There are no simple ways of accomplishing this, though code injecting, api hooking, and a number of other techniques could be used to accomplish this very goal, but my question to you is, do you really want to go through a lot of extra work just to make sure your application is aware of an unexpected termination? You would have to ensure that you code injected/hooked (or whatever method your chose) every single possible method someone else could use to terminate your application, when someone does make one of those calls your application can trigger its own event indicating that it should process such an event and prepare to exit. Essentially you could also use this to stop anyone else from being able to close your application as well.

If you want more information about any of these techniques let me know and I'll post some links. Good luck!

F. Scott Gale