आप इसके लिए nsIProcess का उपयोग करेंगे। आपके मामले में चीजें अधिक जटिल होती हैं क्योंकि आप नहीं जानते कि आप कौन सा एप्लिकेशन चलाने के लिए चाहते हैं - यह आमतौर पर c:\windows\system32\ping.exe
होगा लेकिन आप सुनिश्चित नहीं हो सकते हैं। आप PATH
वातावरण चर खुद पार्स करने के लिए नहीं करना चाहते हैं आप कमांड लाइन खोल यह तुम्हारे लिए क्या कर सकते हैं:
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);
संदर्भ के लिए: COMSPEC
environment variable, nsIEnvironment।
ध्यान दें कि आप प्रक्रिया से डेटा वापस प्राप्त नहीं कर सकते हैं, आप केवल समाप्त होने पर अधिसूचित हो सकते हैं और सीख सकते हैं कि यह विफल रहा है या नहीं। यदि आप कमांड का आउटपुट प्राप्त करना चाहते हैं तो आपको आउटपुट को एक फ़ाइल में रीडायरेक्ट करना होगा (ping stackoverflow.org > c:\\temp\\foo.txt
शेल के माध्यम से कमांड चलाएं) और उस फ़ाइल को बाद में पढ़ें।
स्रोत
2012-04-18 19:22:55