Electron工作列圖示定製分析

格物技術團隊發表於2018-12-17

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工作列圖示定製分析

在Electron原始碼中搜尋setappdetails關鍵字,在ui\base\win\shell.cc中找到

Electron工作列圖示定製分析

首先從呼叫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。


相關文章