java - 使用 Launch4j 将 Java 应用程序固定到 Windows 7 任务栏

标签 java windows windows-7 taskbar launch4j

我目前正在尝试将 Java 应用程序固定到 Windows 7 任务栏。该应用程序以 Launch4j 启动.程序图标显示正确,但右键单击任务栏上的图标仅显示带有条目“关闭窗口”的上下文菜单。没有用于将应用程序固定到任务栏的菜单项。将 EXE 文件拖到任务栏中也无法正常工作。在任务栏中单击这个新启动器时,任务栏中会出现第二个图标。

我按照这两个问题的解决方案的说明解决了问题,但没有帮助:

第二个问题/解决方案中的 JNA 内容可以编译并且不会抛出任何异常。设置后我可以读取应用程序ID。但我仍然无法将应用程序固定到任务栏。

我在 Github 上创建了一个小的测试应用程序来演示这个问题:

https://github.com/kayahr/launch4jtest

应用程序使用 Maven作为构建系统。只需运行 mvn package,您就会在目标目录中找到一个 ZIP 文件,其中包含 EXE 文件和设置此应用程序 ID 所需的 jna.jar。将此 ZIP 解压缩到某个目录,双击 EXE 并尝试将应用程序固定到任务栏,您将看到问题所在。

那么这个应用程序有什么问题呢?

最佳答案

注意根据 kayahr 的要求重写了一些最初在主帖中的评论:)

您需要创建一个嵌入AppUserModelID 信息的图标快捷方式。 InnoSetup 可以在 [Icons] 部分下创建这样的图标快捷方式。通过 JNA 提供分配给 AppUserModelID 的应用程序名称。建议阅读链接:

How to make .exe file for izpack installer .jar file

Launch4j, NSIS, and duplicate pinned Windows 7 taskbar icons

  1. 将 EXE 文件(不是其图标快捷方式)拖放到 Windows 7 任务栏以创建固定图标时有效;
  2. 它在运行 EXE 文件并稍后选择“固定到任务栏”选项菜单以创建固定图标时起作用。如果你不设置AppUserModelID,这是不可能的;即使它会导致奇怪的行为,比如任务栏上有 javaw.exe“图标”而不是你的 exe 图标,因为 Launch4J 使用 javaw.exe 调用可执行 jar(重复的固定图标)

要在 Linux 下运行基于 Windows 的安装程序生成器,请引用此指南:

http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/

是的,正如 kayahr 所提到的,此 Windows 7 功能只有在其带有嵌入式 AppUserModelID 的图标快捷方式保持不变(即未被删除/删除)时才有效。

关于java - 使用 Launch4j 将 Java 应用程序固定到 Windows 7 任务栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9342651/

相关文章:

java - Java 中具有有限范围的类型变量

java - 脚本语言和编译语言

java - Android Studio 应用程序甚至在使用 Libgdx 打开之前就停止工作

c# - SQL Server : cannot connect from local website (SQL Network Interfaces, 错误:26 - 定位指定的服务器/实例时出错)

windows - 如何将 Windows Search 与 Emacs 连接起来

java - 绕过 do while 循环

windows - 批处理脚本中的非标准文件描述符

c - 我应该 IUnknown::Release 使用 DllGetClassObject 创建的接口(interface)吗

c# - 有没有一种方法可以禁用所有 WPF 应用程序的缩放,即使 Windows 在每个监视器或系统范围内都有一定的缩放比例?

windows-7 - 在 Windows 7 上禁用应用程序故障转储