2012-04-15 9 views
0

Ich versuche, den folgenden Code, der Notepad startet. IE Registerkarte ist eine nette Lösung, aber das Laden ist langsam. Ich habe versucht, ff-activex-host.Ich habe die binäre exe heruntergeladen. Ich kopierte die Datei npffax.dll in den Ordner firefox plugin (C: \ Programme \ Mozilla Firefox \ plugins). Aber, immer noch der obige Code funktioniert nicht. Ich erhalte die Meldung "ActiveXObject ist nicht definiert" in der Webkonsole. Kann jemand dieses Thema beleuchten? Bitte löschen Sie mich, diesen Code auszuführen. Dies ist der Code, den ich versuche.Wie führe ich dieses ActiveX-basierte Javascript in Firefox

var commandtoRun ="C:\\WINDOWS\\notepad.exe"; 
var oShell = new ActiveXObject("WScript.Shell"); 
oShell.run(commandtoRun); 

EDIT: Jeder Vorschlag, den obigen Code in Firefox ausgeführt wird begrüßt.

+0

http://stackoverflow.com/questions/2490713/how-to-run-a-local-exe-in-my-firefox-extension – c69

+0

'npffax .dll' ist veraltet und nicht unterstützt, Sie sollten es nicht verwenden. Sie sollten eine ordnungsgemäße Erweiterung schreiben, wenn Sie erweiterte Funktionen benötigen. –

+0

@Wladimir Jeder Link oder Beispielcode kann mir eine große Hilfe sein. – prabhakaran

Antwort

1

Hier ist Beispielcode von MDN:

var file = Components.classes["@mozilla.org/file/local;1"] 
       .createInstance(Components.interfaces.nsILocalFile); 
file.initWithPath("c:\\myapp.exe"); 
file.launch(); 

Denken Sie daran, dies ist nicht Cross-Browser und wird unter Linux nicht funktionieren. Wenn dies für Sie wichtig ist, - verwenden nsIProcess Schnittstelle, https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIProcess

+0

Ist es möglich, Befehlszeilenargumente in diesem zu übergeben ?. Wenn es so ist, kannst du sagen, wie das geht? – prabhakaran

+1

ja, muss 'nsIProcess' verwenden. In dem Beispiel unten auf der verknüpften Seite wird gezeigt, wie Argumenten übergeben werden. – c69

+1

Funktioniert nicht mit den neuesten Versionen von Firefox, das Komponentenobjekt wird gelöscht –