【问题标题】:How to execute a windows command from firefox addon?如何从firefox插件执行windows命令?
【发布时间】:2012-04-18 18:29:14
【问题描述】:

如何使用 firefox 插件执行 windows 命令并显示其输出?

例如: ping www.stackoverfow.com

我只是通过执行打包在一起的二进制文件(或)可执行文件或运行 windows 命令来尝试在 firefox 插件开发中探索更多内容。

【问题讨论】:

    标签: firefox-addon executable launching-application


    【解决方案1】:

    你可以使用nsIProcess。在您的情况下,事情变得更加复杂,因为您不知道要运行哪个应用程序 - 它通常是c:\windows\system32\ping.exe,但您不能确定。如果您不想自己解析 PATH 环境变量,您可以让命令行 shell 为您完成:

    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 variablensIEnvironment

    请注意,您无法从进程接收数据,您只能在进程完成时收到通知并了解它是否失败。如果你想获得命令的输出,你必须将输出重定向到一个文件(通过 shell 运行ping stackoverflow.org > c:\\temp\\foo.txt 命令),然后读出该文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2015-08-18
      相关资源
      最近更新 更多