2012-02-18 287 views
7

我正在嘗試將Java應用程序固定到Windows 7任務欄。該應用程序以Launch4j啓動。程序圖標顯示正確,但右鍵單擊任務欄上的圖標只顯示帶有「關閉窗口」條目的上下文菜單。沒有用於將應用程序固定到任務欄的菜單項。將EXE文件拖入任務欄也無法正常工作。在任務欄中單擊此新啓動器時,任務欄中會出現第二個圖標。使用Launch4j固定到Windows 7任務欄的Java應用程序

我也跟着解決方案,以解決問題這兩個問題的指示,但它並沒有幫助:

從第二個問題的JNA東西/解決方案編譯並不會拋出任何異常。設置後我可以讀取應用程序ID。但我仍然無法將應用程序固定到任務欄上。

我已經創建了Github上一個小的測試應用程序,它演示了此問題:

https://github.com/kayahr/launch4jtest

該應用程序使用Maven作爲構建系統。只需運行mvn package即可在目標目錄中找到包含EXE文件和需要設置此應用程序ID的jna.jar的ZIP文件。將此ZIP解壓縮到某個目錄,雙擊EXE並嘗試將應用程序固定到任務欄,您將看到問題。

那麼這個應用程序有什麼問題?

+0

我已經使用Launch4J創建的可執行文件成功完成了這一工作,但未通過Maven完成。您需要創建嵌入AppUserModelID信息的圖標快捷方式。 InnoSetup可以在[圖標]部分下創建這種圖標快捷方式。提供通過JNA分配給AppUserModelID的應用程序名稱。 – ecle 2012-02-20 12:51:26

+0

請參閱http://stackoverflow.com/questions/5646813/how-to-make-exe-file-for-izpack-installer-jar-file和http://stackoverflow.com/questions/5438651/launch4j-nsis-並重復固定窗口7-任務欄圖標 – ecle 2012-02-20 13:00:42

+0

@eee問題是:我需要在Linux上創建此安裝程序,因爲在構建期間我無法訪問Windows框。有一個NSIS插件,但這也只能在Windows上運行,因爲它直接調用一些Windows API調用。即使我設法修改這些快捷方式:當用戶直接啓動EXE或從EXE文件創建自定義快捷方式時會發生什麼?然後它仍然不起作用。 – kayahr 2012-02-21 09:28:23

回答

4

N.B.根據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文件時以及稍後選擇「pin to taskbar」選項菜單創建固定圖標時起作用。如果你沒有設置AppUserModelID,這是不可能的;即使它會導致一個奇怪的行爲,比如在任務欄上有javaw.exe「圖標」而不是你的exe圖標,因爲Launch4J使用javaw調用可執行jar。exe文件(複製固定圖標)

在Linux下運行基於Windows的安裝建設者,是指以此爲指導:

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

是的,正如kayahr提到的,這個Windows 7的功能,不僅會當其嵌入式圖標快捷方式AppUserModelID保持不變時(例如,它不會被刪除/刪除)工作。

+0

應該指出的是,只有快捷方式在特定位置可用,此方法纔有效!開始菜單。如果安裝程序在Program Files中創建快捷方式(接下來是'.exe'),我可以確認這不起作用。試圖找出爲什麼我無法從exe文件啓動(我只能通過拖動快捷方式到任務欄,從exe文件開始固定後沒有與固定的快捷方式進行組合),我無法鎖定。值得一提的是,我運行的是非管理員用戶帳戶,這可能與權限相關。 – predi 2015-11-19 09:05:33

相關問題