Para ejecutar una aplicación externa desde Electron, usaremos el módulo child_process
de Node.js. De child_process
podrás usar la función execFile, cuya funcionalidad es similar a child_process.exec
, exceptuando que no ejecuta la aplicación por medio de un shell (cmd.exe
) sino directamente desde el archivo. Esto lo hace más rápido y ligero que child_process.exec
.
Ejecutando un programa
Para iniciar un ejecutable, solamente necesitarás el directorio donde este se encuentra. Por ejemplo, el siguiente código debería iniciar Mozilla Firefox (el directorio podría variar de acuerdo al directorio de instalación en cada computador).
Nota que en el siguiente ejemplo, usamos el slash doble invertido (\\
), lo que simplemente hace es escapar el slash invertido (\
) usado en la plataforma de Windows.
var child = require('child_process').execFile;
var executablePath = "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe";
child(executablePath, function(err, data) {
if(err){
console.error(err);
return;
}
console.log(data.toString());
});
Ejecutando un programa con argumentos
Si la ejecución del programa requiere parametros, usando execFile
podrás enviarlos sin ningun problema. Declara un array de cadenas de texto, en este cada item es un argumento.
El siguiente ejemplo muestra como iniciar Google Chrome en módo incognito por medio del parámetro bandera --incognito
:
var child = require('child_process').execFile;
var executablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe";
var parameters = ["--incognito"];
child(executablePath, parameters, function(err, data) {
console.log(err)
console.log(data.toString());
});
Notas
- A menos que el ejecutable que quieras abrir este localizado en el mismo directorio de tu proyecto, siempre necesitarás proveer el directorio completo.
Descubre más acerca del módulo child_process en la documentación oficial de Node.js aquí.
Que te diviertas !
Conviertete en un programador más sociable