У меня есть веб-приложение для внутренней сети, которому необходимо запускать некоторые внешние приложения, такие как Word, Notepad и другие ... Мой код разрешает доступ с помощью IE (ActiveX) и Firefox (XPCOM).Когда я использую весь путь (например, «C: \ windows \ notepad.exe»), я могу работать в обоих браузерах, но проблема в том, что существует множество версий для некоторых приложений, таких как Microsoft Word (2003, 2007, 2010 ...), и локальный путь всегда отличается, НО, если я использую опцию «Выполнить ...» в Windows, я могу только напечатать «winword.exe» и загрузить MS Word, кроме его версии.Если я передаю только имя файла ActiveX в IE, я могу вызвать 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>
Любая помощь будет оценена.Спасибо.