2015-06-12 28 views
5

Sto provando a lanciare un .exe altrove sul mio filesystem di Windows.Node-webkit child spawn Errore sconosciuto

spawn = require('child_process').spawn; 

game.process = spawn(path.join(config.values.armaPath, 'arma3.exe'), { 
    detached: true 
}); 

ho avvolto in un try/catch e l'errore che sto ricevendo non è utile:

Error {code: "UNKNOWN", errno: "UNKNOWN", syscall: "spawn", stack: (...), message: "spawn UNKNOWN"}code: "UNKNOWN"errno: "UNKNOWN"message: "spawn UNKNOWN" 

Ho confermato che il path.join al .exe è corretta.

Ho anche provato

game.process.stdout.on('error'... 

ma che mai incendi.

Edit, ho provato anche un altro metodo:

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

ma che appena gli errori con lo stesso codice, è come l'errore try/blocco catch viene gettato prima della richiamata dalla funzione di spawn è chiamato .

È interessante notare che ho provato a chiamare un exe nella stessa directory e funziona ...

risposta

5

L'obiettivo .exe aveva "Esegui questo programma come amministratore" spuntata. Per far sì che node-webkit lo esegua, anche l'app per i miei nodi deve essere eseguita come amministratore.