2017-07-30 15 views
0

Windows WebkitアプリケーションからWindowsでexeを実行したいと思います。ノード - 子プロセスの生成パス

私は以下のコードを試していますが、動作しません。

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(); 
    }); 
} 

パスが間違っていますか?私はそれが現在のディレクトリであることと、その名前と例の引数で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']); 

これで、意図したとおりに動作します。

関連する問題