Running executable using UniversalXPConnect
Hi I am using following javascript to run windows program but I get error message ->typeerror:netscape.security.privilegemanager is undefined. I am running firefox version 31. Is this outdated in latest versions of firefox ? If yes, can you please tell me the alternatives ?
function runApp() {
var ua = navigator.userAgent.toLowerCase(); if (ua.indexOf("msie") != -1) { MyObject = new ActiveXObject("WScript.Shell") MyObject.Run(path); } else { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var exe = window.Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile); exe.initWithPath(path); var run = window.Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess); run.init(exe); var parameters = ["/c start winword.exe"]; run.run(false, parameters, parameters.length); }
} catch (ex) { alert(ex.toString()); }
모든 댓글 (3)
Support for UniversalXPConnect has been removed quite some time ago and you can no longer use this method to run privileged code. You would need an extension to run a program.
There are extensions that you can look at.
- External Application Buttons 2: https://addons.mozilla.org/firefox/addon/external-application-button/
- PrefBar: https://addons.mozilla.org/firefox/addon/prefbar/
What do I need to make the following code work? Do I need any adds on for this ?? [Firefox version 31]
//Components.utils.import("resource://gre/modules/FileUtils.jsm");
//var env = Components.classes["@mozilla.org/process/environment;1"] // .getService(Components.interfaces.nsIEnvironment); //var shell = new FileUtils.File(env.get("COMSPEC")); //var args = ["/c", "ping stackoverflow.org"];
//var process = Components.classes["@mozilla.org/process/util;1"] // .createInstance(Components.interfaces.nsIProcess); //process.init(shell); //process.runAsync(args, args.length);
See also:
You need to run such code from within an extension to have the proper chrome privileges.