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。