首页 / 问答 / [C#/.NET]C#/.NET/.NET 5的Winform/WPF程序编程中如何监听某个应用进程关闭/退出事件呢?

[C#/.NET]C#/.NET/.NET 5的Winform/WPF程序编程中如何监听某个应用进程关闭/退出事件呢?

.NET C# WINFORM WPF .NET 5 2.57K 次浏览
0

如题,在C#/.NET/.NET 5的Winform/WPF应用程序编程中,需要监听某个指定应用进程的关闭/退出事件。

当监听到指定应用进程被关闭(无论以任何方式被关闭)时,需要回调某个方法,然后处理一些其他的业务,比如:做这个应用的守护程序,当应用退出后重启这个应用,或者记录应用被关闭的时间以作日志记录,或者通知管理员等等。

以上情景,在C#/.NET 5的Winform/WPF应用程序编程中,有什么方法可以实现呢?

回复 [×]
提交评论
请输入评论内容

1 个回答

  • 0

    在C#/.NET/.NET 5的Winform/WPF等应用程序中,如何知道应用程序的进程名称,则可以通过Process实例的GetProcessesByName()方法获取到应用程序名称的所有进程,然后调用进程实例的WaitForExit()方法来监听进程退出的事件。

    获取指定进程名称的所有进程集合:

    获取单个进程实例:

    创建一个进程监听帮助类,示例代码如下:

    以下是在.NET 6的控制台应用程序中的示例:

    示例监听了Windows操作系统自带的记事本应用程序,进程名称为notepad。在示例程序运行前先打开一个记事本应用,然后运行以上控制台示例程序,最后关闭记事本。运行结果如下:

    注意:process.WaitForExit()无参方法的默认等待时间约为24天,如果要无限期等待,则调用process.WaitForExit(Int32),其中的Int32设置为-1表示无限期等待。

    Rector的个人主页

    Rector

    2021-08-25 回答

    我来回答