C# Winform:如何从任务管理器捕获 win 应用程序关闭

Jiale Xue - MSFT 46,456 信誉分 Microsoft 供应商
2024-05-31T09:14:37.0366667+00:00

我有winform应用程序或控制台应用程序。现在我想捕获用户是否关闭应用程序单击十字按钮或从任务管理器关闭应用程序。

在关闭之前,我想发送邮件,邮件发送后应用程序将关闭。如何捕获从任务栏终止的 Winform 或控制台应用程序?

请通过示例代码指导我如何做到这一点。

谢谢

Note:此问题总结整理于:C# Winform: How to capture win application closing from task manager

Windows 窗体
Windows 窗体
一组用于开发图形用户界面的 .NET Framework 托管库。
113 个问题
C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
188 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
    2024-06-03T02:16:40.49+00:00

    任务管理器调用 Windows API ExitProcess 来终止进程。 对于 WinForms 应用程序,可以尝试在应用程序即将关闭时发生的 Application.ApplicationExit 事件。 必须将事件处理程序附加到 ApplicationExit 事件,才能在应用程序停止运行之前发送邮件。

     // Handle the ApplicationExit event to know when the application is exiting.  
        Application.ApplicationExit += new EventHandler(this.OnApplicationExit);  
    

    有关更多详细信息,您可以参考文档中的示例。 在 periczeljkosmederevo 提供的链接中使用分叉进程的代码示例也是一个很好的建议。


    如果回复有帮助,请点击“接受答案”并点赞。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。