2017-07-30 68 views
0

我想从我的Node Webkit应用程序在Windows中运行一个exe文件。节点 - 子进程spawn路径

我想下面的代码,但它不工作。

document.getElementById('play').onclick = function() 
{ 
    var spawn = require('child_process').spawn; 
    var child = spawn(__dirname + '/core.exe', ['/arg1']); 

    var snd = new Audio("min.wav"); 
    snd.play(); 
    win.minimize(); 

    child.stdout.on('data', function (data) { 
     console.log('stdout: ' + data); 
    }); 

    child.stderr.on('data', function (data) { 
     console.log('stderr: ' + data); 
    }); 

    child.on('close', function (code) { 
     console.log('child process exited with code ' + code); 
     var snd = new Audio("restore.wav"); 
     snd.play(); 
     win.restore(); 
    }); 
} 

我是否弄错了路径?我需要它是当前目录,并运行该名称和示例arg的exe。

输出应该是一个消息框,但没有加载。

回答

1

管理弄清楚,它没有被定义,因为我在浏览器上下文中使用它。由于某种原因,我没有收到nw.js SDK版本,发现__DIRNAME未定义。改为使用此解决方案。

var path = require('path'); 
    var nwDir = path.dirname(process.execPath); 
    var spawn = require('child_process').spawn; 
    var child = spawn(nwDir + '/app/core.exe', ['/arg1']); 

现在按预期工作。