gpt4 book ai didi

c# - 优雅地关闭系统托盘应用程序

转载 作者:行者123 更新时间:2023-11-30 13:02:09 31 4
gpt4 key购买 nike

我有一个非常基本的应用程序,它在系统托盘(通知区域)中运行。 Main 方法如下所示:

using (NotifyIcon notifyIcon = new NotifyIcon())
{
notifyIcon.ContextMenuStrip = new ContextMenuStrip();
notifyIcon.ContextMenuStrip.Items.Add(new ToolStripMenuItem(
"Exit",
null,
delegate { App.Exit(); }
)
);

notifyIcon.Icon = Properties.Resources.MyIcon;
notifyIcon.Visible = true;

Application.Run();
}

到目前为止一切正常(我可以使用上下文菜单中的“退出”选项并且应用程序正确退出。但是,我需要在卸载软件时退出应用程序。现在我正在使用 taskkill 从我的 WiX 安装程序执行此操作(也许有更好的方法?)。问题是,如果我执行 taskkill/im myapp.exe,通知区域中的图标会消失,但进程仍在运行。如果我用 taskkill/f/im myapp.exe 强行关闭它,则进程结束但图标仍然存在(直到我将鼠标悬停在它上面)。有没有办法删除图标并从单独的进程中结束进程?

最佳答案

向您的应用程序添加隐藏表单。它将成为 Application.Run() 的参数。当表单关闭时,您的应用程序将退出。

为了让表单在 WiX 中关闭,我们使用一个 util:CloseApplication 1 CloseMessage 属性设置为 true。

关于c# - 优雅地关闭系统托盘应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042763/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com