在Windows 7上,应用程序可以控制如何在任务栏上对Windows进行分组。 Windows具有一些与可执行文件相关的默认设置,快捷方式的创建方式,程序名称等,以应用某些默认分组。基于主机的应用程序(如Java)的问题在于许多程序使用相同的可执行文件,因此Windows具有一些注册表设置来设置javaw.exe是主机应用程序。发生这种情况时,应用程序必须在运行时配置如何对Windows进行分组并启用pin到任务栏。我已经设置Application User Model IDs以便根据需要对Windows进行分组。
我没有找到解决方案的问题是对于多窗口应用程序:如何设置在任务栏上使用的稳定图标?应用程序的默认Windows行为,例如,有两个窗口,每个窗口都有自己的图标,任务栏图标显示第一个打开的窗口的图标,如果该窗口关闭则更改为另一个窗口,以及每次打开和关闭窗口时都会重复该过程。
当用户将应用程序固定到任务栏设置System.AppUserModel.RelaunchIconResource window property时,有一些API可以设置图标,但是文档说在应用程序被固定时会使用此图标,因此根据它只是如果应用程序从该固定应用程序运行,则使用该问题,使问题无法固定(或开发人员不希望允许固定)。
有一些选项,比如使用图标生成新的可执行文件(从该应用程序启动JVM),使用正确的AppUserModelID创建快捷方式。这些对我来说不是解决方案,因为应用程序是使用Java WebStart / JNLP分发的,因此应用程序快捷方式由Java创建,启动程序标记为主机应用程序(应该如此)
另一种解决方案是在Windows 7上运行时为每个窗口设置相同的图标,除了任务栏之外,该图标在Aero模式下的Windows 7上不是很突出,但是当Aero禁用时,它是,它是没有Windows预览的Alt +标签切换器上使用的图标,我想为每个窗口留下不同的东西
注意:这是一个标记的Java,但对任何使用主机可执行文件的平台(javaw.exe,python.exe ...)来说都是一个问题