如何将我的应用程序与Windows 7任务栏上的固定程序相关联?

Hei*_*nzi 18 .net c# vba taskbar windows-7

我们有一个应用程序,我们称之为MyApp.在安装时,我们为MyApp创建一个桌面图标,基本上调用MyLauncher.exe /launch MyApp.exe.MyLauncher做了一些有用的东西(检查更新等),然后启动MyApp.

MyApp在桌面上

使用Windows 7的用户可能希望将其固定到任务栏(即桌面图标上的鼠标右键,"Pin to Taskbar"):

任务栏上的MyApp

但是,由于快捷方式指向MyLauncher,当用户启动应用程序时(使用桌面图标或任务栏图标)会发生以下情况:MyLauncher执行其操作,然后启动MyApp.在任务栏上,结果如下:

MyApp两次在任务栏上

我理解为什么会这样.由于MyLauncher启动了MyApp,因此Windows 7任务栏将它们视为两个不同的应用程序.

显然,我的问题是:作为MyLauncher和MyApp的开发者,我可以对此做点什么吗?我希望Windows 7任务栏能够将所有实例MyApp.exe与快捷方式"关联" 起来MyLauncher.exe /lauch MyApp.exe.

eva*_*nko 0

您可以做的一件事就是根本不显示应用程序的任务栏图标。在 WPF 中,它就像属性设置一样简单:

ShowInTaskbar="False"

这种方法的问题在于,它会降低可用性,因为用户无法再判断应用程序何时运行,也无法在应用程序丢失在其他窗口后面时轻松将其带到最前面。为了减轻其中一些担忧,您可以为此应用程序创建一个通知图标,该图标将启用其中一些功能,并向用户提供有关应用程序当前状态的一些反馈。(运行、不运行等..)

此 msdn 资源有一个很好的代码示例,介绍如何在 Windows 窗体中创建通知图标。您也可以对 WPF 应用程序使用相同的方法。

在此输入图像描述

小提示:通知图标为 16x16 像素。尝试在调整大小之前找到图标的矢量版本,因为这会给您带来更清晰的结果,因为在该尺寸下您往往会丢失很多细节。

与通知图标的一些用户交互可以包括:

  • 双击 > 将应用程序置于最前面
  • 右键单击 > 显示带有一些选项的上下文菜单。(IE 置于前面、关闭等...)
  • 鼠标悬停 > 弹出工具提示,其中包含有关应用程序的一些信息。