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

标签 c# .net vba windows-7 taskbar

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

MyApp on the Desktop

Windows 7 用户可能希望将其固定到任务栏(即,在桌面图标上单击鼠标右键,“固定到任务栏”):

MyApp on the Taskbar

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

MyApp twice on the Taskbar

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

显然,我的问题是:作为 MyLauncher 和 MyApp 的开发人员,我可以为此做些什么吗?我希望 Windows 7 任务栏“关联”MyApp 的所有实例.exe,快捷方式以 MyLauncher.exe/lauch MyApp.exe 开头。

最佳答案

尝试使用“应用 ID” 有关更多信息,请参见此处: http://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx

“应用程序用户模型 ID (AppUserModelIDs) 被 Windows 7 和更高版本系统中的任务栏广泛使用,以将进程、文件和窗口与特定应用程序相关联。在某些情况下,依赖分配的内部 AppUserModelID 就足够了但是,拥有多个进程的应用程序或在主机进程中运行的应用程序可能需要明确标识自己,以便它可以将其原本不同的窗口分组在一个任务栏按钮和控件下该应用程序的跳转列表的内容。”

关于c# - 如何将我的应用程序与 Windows 7 任务栏上的固定程序相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9724393/

相关文章:

c# - 为什么创建新数组会抛出 OutOfMemoryException?

excel - 使用 Excel VBA 搜索列标题并插入新列

c# - 如何将远程 URL 中的图像序列化为 IsolateStorage 或 XML?

c# - 为什么 c# 将 0 视为 int 而不是 short/decimal 等?

.net - 在每次构建时在构建机器中执行集成测试或只是单元测试是正常的吗?

c# - 强制 float 在 .NET 中是确定性的?

c# - 从其他类调用类方法不起作用

c# - Random.NextBytes 有偏见吗?

excel - 比较VBA精度问题中的 double

forms - 如何在 Excel VBA 中声明和设置 ListBox 变量?