当我安装或更新它时,我正在尝试为我的Electron应用程序创建快捷方式,但是我在执行用于创建快捷方式的命令时遇到了一些问题。 默认情况下,Electron应用程序是“SquirrelAware”,因此我必须指定我想要创建快捷方式的位置。
我的问题与这个问题的接受答案有关。
Handle Squirrel's event on an Electron app
我尝试使用exec
模块和child_process
模块,但两者似乎都不起作用。我现在正在尝试(并且失败)启动PowerShell并在那里运行一个脚本,它将在我的“开始”菜单和“桌面”上创建快捷方式,但是我觉得这很长,并且必须有一个更简单的方法。
以下是我目前使用child_process模块和PowerShell的尝试:
var spawn = require('child_process').spawn, child;
child = spawn("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",["C:\\ElectronSquirrelDemo\\AddAppShortcuts.ps1 -SourceExe "+ executionPath] );
child.stdout.on('data', function(data){
console.log("PowerShell Data: " + data);
});
child.stdout.on('data', function(data){
console.log("PowerShell Error: " + data);
});
child.stdout.on('exit', function(){
console.log('PowerShell script finished');
});
对此的任何帮助都将非常感激
答案 0 :(得分:4)
我花了一些时间来了解自己如何做到这一点。 Squirrel.Windows Update.exe可以为您创建应用程序的快捷方式。我写了一篇名为Creating a Windows Distribution of an Electron App using Squirrel的博客文章,其中我有Squirrel为我创建快捷方式。如果你想走这条路,这是如何让Squirrel为你创建快捷方式的简化版本:
var cp = require('child_process');
var updateDotExe = path.resolve(path.dirname(process.execPath), '..', 'update.exe');
var target = path.basename(process.execPath);
var child = cp.spawn(updateDotExe, ["--createShortcut", target], { detached: true });
child.on('close', function(code) {
app.quit();
});
您需要使用Resource Hacker,rcedit或其他应用程序来破解电子可执行文件,以更改ProductName和Icon资源。您将要在安装和更新的Squirrel事件上调用上面的代码。