Como abrir .EXE com Javascript / XPCOM como Windows "Run ..."?
Eu tenho um aplicativo da web na intranet que precisa executar alguns aplicativos externos, como Word, Bloco de Notas e outros em particular ... Meu código permite o acesso com o IE (ActiveX) e Firefox (XPCOM). Quando uso o caminho inteiro (como "C: \ windows \ notepad.exe"), posso executar nas duas navegações, mas o problema é: existem muitas versões para alguns aplicativos como o Microsoft Word (2003, 2007, 2010 .. .), e o caminho local é sempre diferente, MAS, se eu usar a opção "Executar ..." no Windows, só posso digitar "winword.exe" e o MS Word carrega, além da versão. Se eu passar apenas o nome do arquivo para o ActiveX no IE, posso chamar o MS Word, mas no Firefox, com o XPCOM, não o sou. Então, minha pergunta é: Existe alguma maneira de fazer o código XPCOM executar o MS Word apenas com o caminho relativo (nome do arquivo)? Eu testei várias maneiras, mas sem sucesso.
Aqui está o meu código:
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());
}
}
E a chamada foi feita assim:
<a href="#" onclick="javascript:RunExe('winword.exe');">Open Word</a>
Qualquer ajuda seria apreciada. Obrigado