C# 如何在基于NotifyIcon的WPF应用程序中处理WM_CLOSE

C# 如何在基于NotifyIcon的WPF应用程序中处理WM_CLOSE,c#,.net,wpf,C#,.net,Wpf,我有一个在系统托盘中运行的WPF应用程序。它基于NotifyIcon项目() 我需要让它响应由taskkill/IM命令(从命令行运行)发出的WM_CLOSE命令 有人知道我在应用程序中需要什么方法来响应WM_CLOSE吗 更新 我应该说清楚,对于系统托盘应用程序,可能没有窗口 我尝试将onclose添加到窗口对象。但是,如果我发出taskkill/IM…则只有在窗口打开时才会触发 public partial class MainWindow : Window { public Ma

我有一个在系统托盘中运行的WPF应用程序。它基于NotifyIcon项目()

我需要让它响应由
taskkill/IM
命令(从命令行运行)发出的WM_CLOSE命令

有人知道我在应用程序中需要什么方法来响应WM_CLOSE吗

更新

我应该说清楚,对于系统托盘应用程序,可能没有窗口

我尝试将
onclose
添加到窗口对象。但是,如果我发出
taskkill/IM…
则只有在窗口打开时才会触发

public partial class MainWindow : Window
{

    public MainWindow()
    {
        InitializeComponent();
    }

    protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
    {
        base.OnClosing(e);
    }

所以我想我需要一些关于申请的信息。对于申请,我已尝试覆盖
OnExit
Exit
事件,但均未触发。

尝试此@Michael感谢建议-我尝试了您的建议,但没有成功-请参阅更新的问题。@M312V感谢您的建议-我尝试了您的建议,但没有成功-请参阅更新的问题。您可能不需要窗口,但您确实需要一个消息循环。在该消息循环中,您将收到
WM\u CLOSE
消息。大概WPF在发送消息之前有一些惯用的方法来处理消息,类似于“PreTranslateMessage”之类的东西。总是有一个窗口,这是通知工作的唯一方式。但它很好地隐藏在那个项目中,它是WindowMessageSink。它可能也会被taskkill.exe隐藏,您必须尝试。过去任务管理器使用WM_CLOSE。它不再是了,它的行为太随机了。它现在使用TerminateProcess()红色,taskkill.exe也很有可能使用红色。试试这个@Michael谢谢你的建议-我尝试了你的建议,但没有运气-请参阅更新的问题。@M312V谢谢你的建议-我尝试了你的建议,但没有运气-请参阅更新的问题。你可能不需要窗口,但您确实需要一个消息循环。在该消息循环中,您将收到
WM\u CLOSE
消息。大概WPF在发送消息之前有一些惯用的方法来处理消息,类似于“PreTranslateMessage”之类的东西。总是有一个窗口,这是通知工作的唯一方式。但它很好地隐藏在那个项目中,它是WindowMessageSink。它可能也会被taskkill.exe隐藏,您必须尝试。过去任务管理器使用WM_CLOSE。它不再是了,它的行为太随机了。它现在使用TerminateProcess()红色,taskkill.exe也很有可能使用红色。