如何使用Javascript / XPCOM作为Windows“运行…”打开.EXE?

| 我有一个Intranet Web应用程序,该应用程序需要运行一些外部应用程序,例如Word,记事本和其他特定的应用程序...我的代码允许使用IE(ActiveX)和Firefox(XPCOM)进行访问。当我使用整个路径时(例如\“ C:\\ windows \\ notepad.exe \”),我可以在两个浏览器中运行,但是,问题是:某些应用程序的版本很多,例如Microsoft Word(2003 ,2007、2010 ...),并且本地路径始终是不同的,但是,如果我在Windows中使用\“ Run ... \”选项,则只能键入\“ winword.exe \”并加载MS Word,除了它的版本。如果我仅将文件名传递给IE中的ActiveX,则可以调用MS Word,但在Firefox中,使用XPCOM则不能。因此,我的问题是:有没有办法使XPCOM代码仅使用它的相对路径(文件名)运行MS Word?我已经测试了所有方法,但没有成功。 这是我的代码:
function RunExe(path) {
    try {            
        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 = [\"\"];
            run.run(false, parameters, parameters.length);
        }
    } catch (ex) {
        alert(ex.toString());
    }
}
呼叫如下:
 <a href=\"#\" onclick=\"javascript:RunExe(\'winword.exe\');\">Open Word</a>
任何帮助,将不胜感激。谢谢。     
已邀请:
        我相信您的问题在于IE直接与Windows兼容,因为Firefox旨在跨平台。假设您只希望它在Windows上运行,则可以执行命令提示符
    C:\\Windows\\System32\\cmd.exe
并传递一个像
    start winword.exe
然后,它将以与运行相同的方式执行。     

要回复问题请先登录注册