[英]Pinning a Java executable (with launch4j) to the Windows 7 taskbar
[英]Pinning a Java application using Launch4j to the Windows 7 taskbar
我目前正在尝试将 Java 应用程序固定到 Windows 7 任务栏。 该应用程序使用Launch4j启动。 程序图标显示正确,但右键单击任务栏上的图标仅显示带有“关闭窗口”条目的上下文菜单。 没有用于将应用程序固定到任务栏的菜单条目。 将 EXE 文件拖入任务栏也无法正常工作。 单击任务栏中的这个新启动器时,任务栏中会出现第二个图标。
我按照这两个问题的解决方案的说明来解决问题,但没有帮助:
第二个问题/解决方案中的 JNA 内容会编译并且不会引发任何异常。 设置后我可以读取应用程序ID。 但是我仍然无法将应用程序固定到任务栏。
我在 Github 上创建了一个小测试应用程序来演示这个问题:
https://github.com/kayahr/launch4jtest
该应用程序使用Maven作为构建系统。 只需运行mvn package
,您就会在目标目录中找到一个 ZIP 文件,其中包含设置此应用程序 ID 所需的 EXE 文件和 jna.jar。 将此 ZIP 解压缩到某个目录,双击 EXE 并尝试将应用程序固定到任务栏,您将看到问题。
那么这个应用程序有什么问题呢?
NB 根据 kayahr 的要求重写了最初在主要帖子中的一些评论:)
您需要创建一个嵌入AppUserModelID信息的图标快捷方式。 InnoSetup 可以在[Icons]
部分下创建这样的图标快捷方式。 通过 JNA 提供分配给AppUserModelID的应用程序名称。 推荐阅读链接:
Launch4j、NSIS 和重复的固定 Windows 7 任务栏图标
要在 Linux 下运行基于 Windows 的安装程序构建器,请参考以下指南:
http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/
是的,正如 kayahr 所提到的,此 Windows 7 功能仅在其带有嵌入式AppUserModelID 的图标快捷方式保持不变(即未移除/删除)时才有效。
我使用 InnoSetup 为我的 Java 应用程序创建安装程序。 为了使我的应用程序图标可固定,我执行了两个步骤:
从 Maven 添加包:net.java.dev.jna/jna-platform-5.7.0
设置 AppUserModelID
WString id = new WString("TMP.TestApp");
Shell32.INSTANCE.SetCurrentProcessExplicitAppUserModelID(id);
使用 InnoSetup 创建图标时使用 AppUserModelID
[图标]
名称:“{commondesktop}\\TestApp”; 文件名:“{app}\\run.bat”; 工作目录:“{app}”;图标文件名:“{app}\\test-icon.ico”; AppUserModelID: "TMP.TestApp"; 标志:运行最小化
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.