Дочерний элемент Node-webkit порождает НЕИЗВЕСТНУЮ ошибку

Я пытаюсь запустить .exe в другом месте файловой системы Windows.

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"

Я подтвердил, что path.join к .exe правильный.

я тоже пробовал

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

Но это просто ошибки с одним и тем же кодом, это похоже на то, что ошибка блока try/catch возникает до вызова обратного вызова из функции spawn.

Интересно, что я пытался вызвать .exe в том же каталоге, и он работает...


person Titan    schedule 12.06.2015    source источник


Ответы (1)


В целевом .exe была отмечена галочка «Выполнять эту программу от имени администратора». Чтобы node-webkit мог его выполнить, мое приложение node также должно быть запущено от имени администратора.

person Titan    schedule 12.06.2015