2012-04-18 17 views
5

¿Cómo ejecutar un comando de Windows y mostrar su resultado usando el complemento de Firefox?¿Cómo ejecutar un comando de Windows desde el complemento de Firefox?

Por ejemplo: de ping www.stackoverfow.com

Estoy tratando de explorar más en el desarrollo complemento de Firefox mediante la ejecución de un ejecutable de archivo binario (o) envasados ​​juntos o bien ejecutando un comando de las ventanas.

Respuesta

12

Utilizaría nsIProcess para eso. En su caso, las cosas se complican porque no sabe qué aplicación desea ejecutar; generalmente será c:\windows\system32\ping.exe, pero no puede estar seguro. Si no desea analizar la variable de entorno PATH sí mismo que puede hacer que el shell de línea de comandos que lo haga por usted:

Components.utils.import("resource://gre/modules/FileUtils.jsm"); 

var env = Components.classes["@mozilla.org/process/environment;1"] 
        .getService(Components.interfaces.nsIEnvironment); 
var shell = new FileUtils.File(env.get("COMSPEC")); 
var args = ["/c", "ping stackoverflow.org"]; 

var process = Components.classes["@mozilla.org/process/util;1"] 
         .createInstance(Components.interfaces.nsIProcess); 
process.init(shell); 
process.runAsync(args, args.length); 

Como referencia: COMSPEC environment variable, nsIEnvironment.

Tenga en cuenta que no puede recibir datos del proceso, simplemente puede recibir una notificación cuando finalice y saber si falló. Si desea obtener la salida del comando, tendrá que redirigir la salida a un archivo (ejecute el comando ping stackoverflow.org > c:\\temp\\foo.txt a través del shell) y lea ese archivo después.

Cuestiones relacionadas