Я пытаюсь выполнить локальный файл .exe из js моей HTML-страницы в браузере Firefox на компьютере с Linux. Я знаю, что это небезопасно, но это будет локально, и я прочитал некоторые варианты, но ни один из них не подходит.
Я также хотел бы прочитать стандартный вывод и захватить его.
Я пробовал много вещей, мой код сейчас выглядит следующим образом:
var oShell = new ActiveXObject("WScript.shell");
oshell.run("/usr/share/applications/rfid.desktop");
var res = oShell.StdOut.ReadAll;
console.log(res);
или это:
alert("In fun RunExe()..");
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
alert("Done");
var exe = window.Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
exe.initWithPath("{% static '../../rfid-csharp/RFID.exe' %}");
alert("exe");
var run = window.Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess);
run.init(exe);
var parameters = [""];
run.run(false, parameters,parameters.length);
alert("in function RunBat");
Но ни один из них не работает в первую очередь, потому что activeXObject предназначен только для ie, а во-вторых, ошибка:
ReferenceError: netscape не определен Uncaught TypeError: Невозможно прочитать свойство 'classes' из неопределенного
Я также пытался создать desktop.file, но я не знаю, как выполнить его из js.
Большое спасибо и извините за мой плохой английский.