我正在尝试在我的Windows文件系统上的其他位置启动.exe。
spawn = require('child_process').spawn;
game.process = spawn(path.join(config.values.armaPath, 'arma3.exe'), {
detached: true
});
我把它包装在try / catch中,我得到的错误没有帮助:
Error {code: "UNKNOWN", errno: "UNKNOWN", syscall: "spawn", stack: (...), message: "spawn UNKNOWN"}code: "UNKNOWN"errno: "UNKNOWN"message: "spawn UNKNOWN"
我已经确认.exe的path.join是正确的。
我也试过
game.process.stdout.on('error'...
但永远不会开火。
编辑,我还尝试了另一种方法:
var child = execFile(path.join(config.values.armaPath, 'arma3.exe'),
function(error,stdout,stderr) {
if (error) {
console.log(error.stack);
console.log('Error code: '+ error.code);
console.log('Signal received: '+ error.signal);
}
console.log('Child Process stdout: '+ stdout);
console.log('Child Process stderr: '+ stderr);
}
);
但是这只是相同代码的错误,就像在调用spawn函数的回调之前抛出了try / catch块错误。
有趣的是,我尝试在同一目录中调用.exe,它确实有用......
答案 0 :(得分:5)
目标.exe已选中“以管理员身份运行此程序”。为了让node-webkit能够执行它,我的节点应用程序也必须以管理员身份运行。