从Windows上的C#开始,有没有办法找出进程是如何停止的?
我看过Process类,设置EnableRaisingEvents = true;
之后设法从Exited事件中得到一个友好的回调但是我没有设法找出该进程是否被杀死或是否自然退出了吗?
答案 0 :(得分:3)
启动进程监视器(来自Sysinternals,Microsoft的一部分),运行您的进程并让它死掉,然后按进程名称筛选Process Monitor结果 - 您将能够看到它所做的一切,包括退出代码
答案 1 :(得分:0)
您可以使用该过程的返回码。如果您的进程从其Main方法返回非零值,则可以检查进程是否自行退出(返回值是否匹配)。
答案 2 :(得分:0)
很好的答案Antoine,遗憾的是我无法更改返回码。我的坏 - 我想我需要缩小问题的范围。
实际上我认为我甚至不需要程序化的解决方案 - 实用程序会很好 - 我已经看过令人印象深刻的Process Explorer,但这似乎并没有给我这些细节。
我遇到的问题是我希望查询的程序是由调度系统运行的,相当于Windows计划任务,但不是。有没有办法检测调度程序是否强制停止程序?