From C# on a Windows box, is there a way to find out how a process was stopped?
I've had a look at the Process class, managed to get a nice friendly callback from the Exited event once I set EnableRaisingEvents = true;
but I have not managed to find out whether the process was killed or whether it exited naturally?
Fire up Process Monitor (from Sysinternals, part of Microsoft), run your process and let it die, then filter the Process Monitor results by your process name -- you will be able to see everything that it did, including exit codes.