Electron提供了這樣一個API ,win.setAppDetails(options),通過它我們可以設定視窗工作列按鈕的屬性:
appId
String (可選) - 視窗的 App User Model ID. 該項必須設定, 否則其他選項將沒有效果.appIconPath
String (可選) -視窗的 Relaunch Icon.appIconIndex
Integer (可選) -appIconPath
中的圖示索引. 當appIconPath
沒設定時則忽略. 預設值為0
.relaunchCommand
String (可選) - 視窗的 重新啟動命令.relaunchDisplayName
String (可選) - 視窗的重新啟動顯示名稱.
在程式碼中使用它的方式是:
在Electron原始碼中搜尋setappdetails關鍵字,在ui\base\win\shell.cc中找到
首先從呼叫shellapi中的SHGetPropertyStoreForWindow獲取到指定視窗控制程式碼的屬性,然後依次設定app_id、app_icon_path、relaunch_command、relaunch_display_names四個屬性。
注意:
1.your_icon_path一定要指向一個真實的icon檔案路徑,切不可指向electron資源打包檔案中的路徑,因為windows無法理解electron使用的資源。
2.your_cmd_string需要使用雙引號包裹起來,防止存在空格導致命令列無法正確執行。
執行我們的electron程式,可以看到工作列圖示不再是預設的可執行程式圖示,而是變成your_icon_path指向的圖示。
這時在工作列圖示上右鍵,能看到名稱是指定的your_display_name_string,在名稱上右鍵檢視屬性,可以看到一個快捷方式的屬性資訊對話方塊,目標一欄可以看到設定的your_cmd_string。