4

私はこのスレッドと他の Firefox拡張機能でローカルexeを実行する方法を読みました

問題は、Firefox 4.0.1の展開時および使用時に、.xpi拡張子をインストールすると、xpiが圧縮形式である****。xpiとして\ Profiles ...\extensions内に配置されることです。

すべてのソリューションは、拡張子がフォルダーに配置されていることを前提としているため、フォルダーにそのままアクセスしていますが、これはできません。

たとえば、この男は言います

//**** get profile folder path ****
  var dsprops = Components.classes['@mozilla.org/file/directory_service;1']
      .getService(Components.interfaces.nsIProperties);
  var ProfilePath = dsprops.get("ProfD", Components.interfaces.nsIFile).path;

//**** initialize file ****
  var file = Components.classes["@mozilla.org/file/local;1"]
      .createInstance(Components.interfaces.nsILocalFile);
  file.initWithPath(ProfilePath);

//**** append each step in the path ****
  file.append("extensions");
  file.append("guid");
  file.append("sample.exe");

私の場合のguidは、{f13b157f-b174-47e7-a34d-4815ddfdfeb8} .xpiとしてインストールされますが、この方法ではアクセスできません。

4

2 に答える 2

1

まず第一に、このようなファイルを見つけないでください - あなたは Firefox プロファイルのディレクトリ構造について多くの仮定を行っています. それらのどれもが将来の Firefox バージョンで (または一般的ではない拡張設定のシナリオでさえ) 誤りになる可能性があります. 拡張機能のインストール ディレクトリでファイルを検索するコードについては、代わりにバイナリ コンポーネントを js-ctypes に参照するを参照してください。単純に に置き換えcomponents/linux/myLib.sosample.exe実行してuri.fileください。

2 つ目: これは、実行する前に実行可能ファイルを一時ファイルに展開しない限り、パックされた XPI インストールが機能しないシナリオです (これは複雑になります)。Windows は、ZIP アーカイブからの実行可能ファイルの実行をサポートしていません。<em:unpack>true</em:unpack>したがって、拡張機能の install.rdf に追加して、解凍されたディレクトリとしてインストールされるようにする必要があります。

于 2011-06-23T07:10:18.807 に答える
0

最良の答えは、flashgot Firefox アドオンを入手することです。このアドオンには、既に実行可能なファイルが含まれており、オープン ソースです。それを調べてください。これは、これが実際にどのように機能するかを観察するための優れた方法です。これに基づいて、 内で実行可能なアドオンを好きなだけ作成したり、プログラム全体を FF アドオンとして追加したりできます。この回答が時代遅れではなくても、これが役立つことを願っています。

于 2013-03-15T04:26:43.520 に答える