2012-04-18 15 views
5

Come eseguire un comando di Windows e visualizzarlo con l'addon di firefox?Come eseguire un comando windows da firefox addon?

Per esempio: ping www.stackoverfow.com

Sto solo cercando di esplorare più in fase di sviluppo addon per Firefox eseguendo un file eseguibile binario (o) confezionati insieme oppure l'esecuzione di un comando di Windows.

risposta

12

Si utilizzerà nsIProcess per quello. Nel tuo caso le cose sono rese più complicate perché non sai quale applicazione vuoi eseguire: di solito è c:\windows\system32\ping.exe ma non puoi esserne certo. Se non si vuole analizzare la variabile PATH ambiente da soli si può fare la shell a riga di comando di farlo per voi:

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

Per riferimento: COMSPEC environment variable, nsIEnvironment.

Nota che non è possibile ricevere dati dal processo, è possibile ricevere una notifica al termine e scoprire se non è riuscito. Se si desidera ottenere l'output del comando, sarà necessario reindirizzare l'output su un file (eseguire il comando ping stackoverflow.org > c:\\temp\\foo.txt tramite shell) e leggere il file in seguito.

Problemi correlati