我目前正试图将Java应用程序固定到Windows 7任务栏。 该应用程序使用Launch4j启动。 程序图标显示正确,但右键单击任务栏上的图标只会显示带有“closures窗口”条目的上下文菜单。 没有用于将应用程序固定到任务栏的菜单项。 将EXE文件拖到任务栏也不能正常工作。 在任务栏中单击此新启动器时,任务栏中会出现另一个图标。
我按照解决这两个问题的方法来解决问题,但是没有帮助:
从第二个问题/解决scheme的JNA东西编译,并没有抛出任何exception。 设置后我可以读取应用程序ID。 但我仍然不能将应用程序固定到任务栏。
我在Github上创build了一个小的testing应用程序来演示这个问题:
https://github.com/kayahr/launch4jtest
该应用程序使用Maven作为构build系统。 只需运行mvn package
,你会在目标目录中find一个ZIP文件,其中包含EXE文件和需要设置该应用程序ID的jna.jar。 将此ZIP解压缩到某个目录,双击EXE并尝试将应用程序固定到任务栏上,您将看到问题。
那么这个应用程序有什么问题?
注意根据kayahr的要求,在主帖中重写了一些评论:)
您需要创建嵌入AppUserModelID信息的图标快捷方式。 InnoSetup可以在[Icons]
部分创建这样的图标快捷方式。 提供通过JNA分配给AppUserModelID的应用程序名称。 建议阅读的链接:
如何为izpack安装程序.jar文件制作.exe文件
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的图标快捷方式保持不变(即不被移除/删除)时才能起作用。