有没有人知道从firefox运行可执行文件?

时间:2015-05-26 07:49:11

标签: firefox firefox-addon

我尝试开发一个Firefox附加组件,通过浏览器的上下文菜单(或VBScript文件或CMD命令)运行exe文件。我试过这些但没有结果:

  • 使用签名的jar文件
  • 使用Flash(fscommand)
  • 使用JavaScript(ActivexObject)
  • 使用Firefox附加SDK(nsIProcess& ctypes)

我总是有一个非常受欢迎的结局,说“安全问题不允许这样”。有没有人有没有死胡同的想法?

2 个答案:

答案 0 :(得分:2)

  

我尝试了这些但没有结果:   使用Firefox附加SDK(nsIProcess& ctypes)

addon sdk提供了一种开箱即用的方法:system/child_process

Firefox插件具有计算机上用户帐户的全部功能。如果用户可以启动进程,那么firefox插件也可以启动。

所以我想知道是什么原因导致你没有结果"。

答案 1 :(得分:2)

你尝试过什么类型的ctypes?我正在使用带有ShelExecuteEx的Windows中的ctypes,使用g_app_info_launch_uris在Gtk(Unix)上启动exe,在OSX上使用popen open启动。我使用这些(而不是nsIProcess),因为我需要它启动分离,这意味着启动过程不等待启动过程中关闭或等的响应。在unix / linux / mac上,nsIProcess启动导致pid污染。这意味着启动流程的pid将在已启动的流程资产中找到。

要使用常规nsIProcess启动,请执行以下操作:

var procFinned = {
    observe: function (aSubject, aTopic, aData) {
      console.log('bash nsIProcess completed');
    }
};

var nsifile = new FileUtils.File('c:\blah\blah.exe');
var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
var args = [];
process.init(nsifile);
process.runAsync(args, args.length, procFinned);