如何从Firefox插件打开外部应用程序? (例如:默认文本编辑器)

时间:2013-05-25 22:50:45

标签: firefox-addon editor add-on

我需要我的插件才能用外部工具编辑一些文件。有任何想法吗?

1 个答案:

答案 0 :(得分:5)

此代码段在提供路径时显示或启动文件:

var localFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
localFile.initWithPath("C:\\some-directory\\some-file.png");

if(localFile.exists()){
    // localFile.reveal();       // open the containing folder of the file
    // localFile.launch();       // launch the file
}

但是,您可能需要使用nsIProcess来运行带参数的可执行文件(例如您尝试使用可执行文件打开的文件路径)。

var exeFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
exeFile.initWithPath("C:\\Program Files\\...\\app.exe");
var parameter="C:\\some-directory\\some-file.txt";
if(exeFile.exists()){
    var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);  
    process.init(exeFile);
    process.run(false,[parameter],1);  // launch the executable with another file as parameter.
}

文件:

https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIFile https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsILocalFile https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIProcess https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O