2012-04-28 152 views
1

我有一个托盘图标的应用程序。我正在使用notifyicon来完成这项工作。 我已经在Visual Studio中创建了它的安装程序,它可以安装和卸载应用程序。如何删除应用程序卸载中的托盘图标C#

问题是当我卸载程序时,其托盘图标未被删除,甚至在程序卸载后,即使其后端的.exe文件已被删除,我仍可以单击图标并启动应用程序卸载程序。

回答

2

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

在您的托盘应用程序的后台线程:

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

在你卸载:

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

好我得到了有关创建后台线程的一部分,但我怎么把它从卸载?因为在卸载程序中我没有看到任何地方写任何代码,所以我可以提出这个事件。 – Ali 2012-04-28 11:37:18

+0

请参阅编辑答案 – Flot2011 2012-04-28 11:53:01

+0

但问题是我在哪里在卸载程序中编写此代码?没有选择编写代码。检查附加的截图,你会看到没有.cs或其他文件来编写代码。 http://i.imgur.com/18yxM.jpg – Ali 2012-04-28 12:03:26

相关问题