3 Stimmen

Wie führe ich einen Befehl in einem Firefox Add-On aus?

Ich bin ziemlich neu im Schreiben von Firefox-Add-Ons, dennoch bin ich an einem Punkt angelangt, an dem ich eine funktionierende Erweiterung zusammengeflickt habe, mit Ausnahme des Kerns davon.

An einem bestimmten Punkt im Code muss ich einen Systembefehl für eine Datei ausführen. Ich habe einen Ausschnitt im Web gefunden und versucht, ihn zu adaptieren, aber ohne Erfolg. Von meinem xpi/components/script.js :

var cmd = '/usr/bin/somecommand'

var args = ['-option', 'value', f.path ];

var execFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);

execFile.initWithPath(cmd);

if (execFile.exists()) {
    process.init(execFile);
    process.run(false, args, args.length);
}

Kann mir jemand sagen, was hier falsch ist? Ich habe den Befehl zusammengesetzt und den Dateinamen erhalten, aber ich kann Firefox nicht dazu bringen, dieses Codefragment auszuführen.

Ist das execFile , initWithPath , createInstance etc. wirklich benötigt? Ich möchte nur den Befehl genau wie in der CLI ausführen:

$ somecommand -option value filename

1voto

Nickolay Punkte 29488

Funktioniert bei mir gut mit cmd y args geändert in:

var cmd = '/usr/bin/say';
var args = ['hello', 'world' ];

Wie Neil sagt, brauchen wir mehr Informationen für die Fehlersuche. Aktivieren Sie die Fehler-Konsole und prüfen Sie, ob es dort Nachrichten gibt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X