C# 检测进程何时退出(未崩溃)

C# 检测进程何时退出(未崩溃),c#,winapi,C#,Winapi,当notepad.exe被用户优雅地关闭(而不是被操作系统崩溃或关闭)时,我试图运行一些代码,以便实现自动保存 如果我有一个运行notepad.exe进程句柄的IntPtr,我该怎么做?没有进程属性可以查询以查看进程是否崩溃或终止。您所能做的最好是检查退出代码,如果它是0,那么该进程可能在成功完成其“操作”后退出 MSDN在子进程上使用了WaitForExit和ExitCode属性…我有一个实例的IntPtr-什么是“实例”?您拥有的IntPtr是什么?如果您有一个processId进程。Get

当notepad.exe被用户优雅地关闭(而不是被操作系统崩溃或关闭)时,我试图运行一些代码,以便实现自动保存


如果我有一个运行notepad.exe进程句柄的
IntPtr
,我该怎么做?

没有进程属性可以查询以查看进程是否崩溃或终止。您所能做的最好是检查退出代码,如果它是0,那么该进程可能在成功完成其“操作”后退出


MSDN在子进程上使用了
WaitForExit
ExitCode
属性…

我有一个实例的IntPtr-什么是“实例”?您拥有的
IntPtr
是什么?如果您有一个processId进程。GetProcessById()将为您提供一个带有阻塞等待方法或已退出事件的对象。它不会告诉您它是否正在关闭,只有当它已关闭且太过late@AlexK. 这能让我从一个优雅的(用户控制的)退出中分辨出崩溃吗?@mcintyre321-不,不清楚实例的IntPtr是什么(进程句柄?进程id?)。无论如何,您需要获得进程句柄并将其传递给任何等待函数