2

私は現在アドオンを構築しており、最初の実行時に特定のコードを実行したいと考えていました。具体的には、アドオン ボタンをクリックし、ファイルを参照して実行可能ファイルを選択します。最初の実行後にこの特定のファイルを開くことをボタンに「記憶」させたいので、この参照プロセスは最初の実行時にのみ実行する必要があります。

jetpack.future.import("me");

var buttons = require('sdk/ui/button/action');

var button = buttons.ActionButton({
  id: "execute-jar",
  label: "Download Report",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onClick: handleClick
});

jetpack.me.onFirstRun(function(){    jetpack.notifications.show("Oh boy, I'm installed!");});

function handleClick(state) {   

    let {Cc, Ci} = require('chrome');
    var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
    file.initWithPath("C:\\Users\\QaziWa\\DownloadReportPPE.jar");

    if(file.exists()){
        file.reveal();
        file.launch();
    }
    else {
        console.log('Failed.');
    }
}

MDN でこれを見つけました: https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Jetpack/Meta/Me

ただし、これはアーカイブされたものであり、これを試したときにコードが成功せず、「メッセージ: ReferenceError: jetpack が定義されていません」というメッセージが表示されました。

私が欲しいものに関連するいくつかの質問を見たので、この時点でかなり困惑していますが、アドオンにこの非常に必要な機能を実装する方法がわかりません. 誰かが私を正しい方向に向けたり、機能するコードの例を提供したりできますか?

編集:明確にするために:パスをハードコーディングしたくありません。ユーザーが実行したいファイルを選択できるようにする機能を追加する予定です。私の主な質問は、最初の実行時にのみ特定のコードブロックを実行するにはどうすればよいですか?

4

1 に答える 1