3

在 Windows 7 上,应用程序可以控制如何在任务栏上对 Windows 进行分组。Windows 有一些与可执行文件、快捷方式创建方式、程序名称等相关的默认设置,以应用一些默认分组。Java 等基于主机的应用程序的问题在于,许多程序都使用相同的可执行文件,因此 Windows 有一些注册表设置来设置 javaw.exe 是主机应用程序。发生这种情况时,应用程序必须在运行时配置如何对 Windows 进行分组并启用固定到任务栏。我已经在设置应用程序用户模型 ID以便根据需要对 Windows 进行分组。

我还没有找到解决方案的问题是对于多窗口应用程序:如何设置要在任务栏上使用的稳定图标?。应用程序的默认 Windows 行为,例如有两个窗口,每个窗口都有自己的图标,任务栏图标显示第一个打开的窗口的图标,如果该窗口关闭,它会更改为另一个窗口,并且每次打开和关闭窗口时都会重复该过程。

当用户将应用程序固定到任务栏设置System.AppUserModel.RelaunchIconResource 窗口属性时,有一些 API 可以设置图标,但是文档说在固定应用程序时使用此图标,因此仅使用它如果应用程序是从该固定应用程序运行的,则对于无法固定的应用程序(或开发人员不想允许固定)的应用程序开放问题。

有一些选项,例如使用图标生成新的可执行文件(从该应用程序启动 JVM),使用正确的 AppUserModelID 创建快捷方式。这些对我来说不是解决方案,因为应用程序是使用 Java WebStart/JNLP 分发的,所以应用程序快捷方式是由 Java 创建的,并且启动器被标记为主机应用程序(应该如此)

另一种解决方案是在 Windows 7 上运行时为每个窗口设置相同的图标,该图标,除了任务栏一个,在 Aero 模式下的 Windows 7 上不是很突出,但禁用 Aero 时,它是在没有窗口预览的 Alt+tab 切换器上使用的图标,我想让每个窗口看起来都不同

注意:这是一个标记的 Java,但对于使用主机可执行文件(javaw.exe、python.exe ...)的任何平台来说确实是一个问题

4

0 回答 0