设置后,通知图标并不总是出现在系统托盘中,但仍然可以正常运行

时间:2010-08-26 20:01:49

标签: c# windows-xp windows-installer system-tray notifyicon

首先,当我正常启动应用程序(双击exe)时,它完美地工作:通知图标始终出现在系统托盘中。当应用程序在msi设置(Run exe after msi installation?)结束时启动时,它也可以正常工作。

但是,当从以静默模式运行的msi启动应用程序时,我的通知图标并不总是出现,但应用程序正常运行:我可以使用键盘快捷键访问上下文菜单。我在三台运行在Windows XP下的计算机上进行了测试,成功率约为50%。我也在Windows7上测试过:它运行得很好。

我知道在Windows XP启动期间通知图标存在一些问题,但我不知道它是否相关(http://www.google.ca/search?hl=fr&q=notify+icon+not+appearing+Windows+XP&aq=f&aqi=&aql=&oq=&gs_rfai=

所以,我想知道你们中是否有人经历过这个问题。你认为这是一个Windows XP漏洞吗?或者它与谁启动应用程序(msiexec vs .exe)有关?我不认为这可能是我的代码中的错误,因为当我直接启动它时,它运行良好。

1 个答案:

答案 0 :(得分:1)

您必须意识到当您运行silent(/ quiet / qn UILevel = 3)并且InstallUISequence没有运行时,只有InstallExecuteSequence才会运行。因此,您需要将自定义操作安排在InstallExecuteSequence结束时以静默方式运行,以便C#程序运行并将其自身放入托盘中。

对于那些质疑这个要求的人来说,这样做是很正常的。作为一个SMS管理员,我会默默地推出软件包,关闭托盘应用程序,卸载旧版本,安装新版本并重新安装试用版应用程序。所有这一切没有代理人几乎没有注意到它曾经失踪过。