首页 > 解决方案 > 当用户打开它两次时,如何避免为我的应用程序组合任务栏按钮?

问题描述

在较新版本的 Windows 中,当我打开同一个应用程序两次时,任务栏会将两个按钮组合在一起。我能做些什么来避免这种情况(不包括更改 Windows 设置,因为我只希望它用于我的应用程序,而不是所有应用程序)。

标签: c#.netvb.net

解决方案


Raymond Chen 不久前在他的博客上详细介绍了如何做到这一点:如何自定义我的应用程序窗口在任务栏中的分组方式?

本文中的所有信息均来自 MSDN 中的文章应用程序用户模型 ID (AppUserModelIDs)

好的,假设您的应用程序实际上是其他应用程序的运行时。您需要做的是为您托管的每个应用程序分配不同的 AppID。这个机制取决于你。您的应用程序可能会明确提供唯一 ID,或者您可以推断出一个。例如,如果您是 Internet Explorer 并且您的“应用程序”是固定网站,您可以使用固定网站的 URL 作为唯一 ID。

然后,您可以获取您的唯一 ID 并为它们创建 AppID。AppID的格式为

CompanyName.ProductName.SubProduct.VersionInformation

其中 SubProduct 是可选的,并且仅当您希望将应用程序的不同版本视为不同时才存在 VersionInformation。(如果您希望升级版本替代旧版本,则省略 VersionInformation 以便新旧版本使用相同的 AppID。)

然后将此 AppID 分配给与“应用程序”关联的每个窗口。您可以通过调用 对整个过程执行此操作SetCurrentProcessExplicitAppUserModelID,也可以通过设置属性逐个窗口执行此操作。PKEY_AppUserModel_ID


推荐阅读