111,096
社区成员




function execCommand(command, strArgs)
{
// separate command arguments
var args = new Array();
var quoted = false;
var double_quoted = false;
var param = "";
for (var i = 0; i < strArgs.length; i++) {
var charArgs = strArgs.substring(i,i + 1);
if ( charArgs == "\"" && !quoted ) { double_quoted =! double_quoted; }
else if ( charArgs == "\'" && !double_quoted ) { quoted =! quoted; }
else if ( /\s/.test(charArgs) && !quoted && !double_quoted ) {
if (param != "") args.push( param );
param = "";
} else param += charArgs;
}
if (param != "") args.push( param );
// create a file object for the external program
try {
var applicFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
var applic = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
//var applic = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess2);
applicFile.initWithPath(command);
if (!applicFile.exists()) {
alert("Executable '" + command + "' does not exist.");
} else {
applic.init(applicFile);
applic.run(false, args, args.length);
//applic.runAsync(args, args.length, null, false);
}
} catch (e) {
alert("Cannot run executable: " + e);
return false;
}
}