如何在C#中删除应用程序卸载中的托盘图标

时间:2012-04-28 05:44:15

标签: c# setup-project uninstall trayicon

我有一个托盘图标的应用程序。我正在使用notifyicon来完成这项工作。 我在Visual Studio中创建了它的安装程序,用于安装和卸载应用程序。

问题是当我卸载程序时,它的托盘图标没有被删除,即使在卸载程序后,我也可以点击图标并启动应用程序,即使后端的.exe文件已被删除了卸载程序。

1 个答案:

答案 0 :(得分:2)

通常的做法是在托盘应用程序中创建一个后台线程,该线程将等待命名事件发出信号。然后,您的卸载程序应将此事件设置为信号状态。当事件发出信号时,托盘应用程序就会退出。

在托盘应用程序的后台主题中:

EventWaitHandle ev = new EventWaitHandle(false, EventResetMode.AutoReset, "MyCloseEventName");
ev.WaitOne();

在卸载程序中:

EventWaitHandle ev = EventWaitHandle.OpenExisting("MyCloseEventName");
ev.Set();