2012-04-18 20 views
5

Bir windows komutu nasıl çalıştırılır ve firefox addon kullanılarak çıktı alınır? ÖrneğinFirefox eklentisinden bir windows komutu nasıl çalıştırılır?

: ben sadece birlikte paketlenmiş bir ikili dosya (veya) yürütülebilir yürütme veya başka bir windows komutu çalıştırarak firefox eklenti geliştirmeye daha fazla araştırmaya çalışıyorum

ping www.stackoverfow.com.

cevap

12

Bunun için nsIProcess kullanırsınız. Durumunuzda, hangi uygulamayı çalıştırmak istediğinizi bilmediğinizden dolayı, işler daha karmaşık hale getirilir - genellikle c:\windows\system32\ping.exe olur, ancak emin olamazsınız. Eğer PATH çevre değişken kendiniz ayrıştırmak istemiyorsanız komut satırı kabuğu sizin için bunu yapabilirsiniz:

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); 
Başvuru için

: COMSPEC environment variable, nsIEnvironment.

Verileri işlemden geri alamazsınız, tamamlandığında bildirim alıp başarısız olup olmadığını öğrenebilirsiniz. Komutun çıktısını almak istiyorsanız, çıktıyı bir dosyaya yönlendirmelisiniz (kabuk aracılığıyla ping stackoverflow.org > c:\\temp\\foo.txt komutunu çalıştırın) ve daha sonra bu dosyayı okuyun.

İlgili konular