Electron任务栏图标定制分析

4,572 阅读1分钟

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。