admin管理员组文章数量:1414861
I have an intranet web application who needs to run some external applications, like Word, Notepad and other particular ones... My code allow the access with IE (ActiveX) and Firefox (XPCOM). When I use the whole path (like "C:\windows\notepad.exe") I can run in both browses, but y problem is: there's a lot of versions for some applications like Microsoft Word (2003, 2007, 2010...), and the local path is always different, BUT if I use the "Run..." option in Windows, I can only type "winword.exe" and MS Word loads, besides it's version. If I pass only the filename to ActiveX in IE, I'm able to call MS Word, but in Firefox, with XPCOM, I'm not. So, my question is: Is there any way to make the XPCOM code run MS Word just with it's relative path (filename)? I've tested a whole of ways but without success.
Here's my code:
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/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
exe.initWithPath(path);
var run = window.Components.classes['@mozilla/process/util;1'].createInstance(Components.interfaces.nsIProcess);
run.init(exe);
var parameters = [""];
run.run(false, parameters, parameters.length);
}
} catch (ex) {
alert(ex.toString());
}
}
And the call has been made like this:
<a href="#" onclick="javascript:RunExe('winword.exe');">Open Word</a>
Any help would be appreciated. Thank you.
I have an intranet web application who needs to run some external applications, like Word, Notepad and other particular ones... My code allow the access with IE (ActiveX) and Firefox (XPCOM). When I use the whole path (like "C:\windows\notepad.exe") I can run in both browses, but y problem is: there's a lot of versions for some applications like Microsoft Word (2003, 2007, 2010...), and the local path is always different, BUT if I use the "Run..." option in Windows, I can only type "winword.exe" and MS Word loads, besides it's version. If I pass only the filename to ActiveX in IE, I'm able to call MS Word, but in Firefox, with XPCOM, I'm not. So, my question is: Is there any way to make the XPCOM code run MS Word just with it's relative path (filename)? I've tested a whole of ways but without success.
Here's my code:
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/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
exe.initWithPath(path);
var run = window.Components.classes['@mozilla/process/util;1'].createInstance(Components.interfaces.nsIProcess);
run.init(exe);
var parameters = [""];
run.run(false, parameters, parameters.length);
}
} catch (ex) {
alert(ex.toString());
}
}
And the call has been made like this:
<a href="#" onclick="javascript:RunExe('winword.exe');">Open Word</a>
Any help would be appreciated. Thank you.
Share Improve this question asked May 30, 2011 at 14:34 thiagoprzythiagoprzy 4212 gold badges8 silver badges21 bronze badges1 Answer
Reset to default 3I believe your problem lies in the fact that IE directly works with Windows where as Firefox is intended to be cross-platform. Assuming you only want this to work on Windows, you could execute the mand prompt
C:\Windows\System32\cmd.exe
and pass it an argument like
start winword.exe
Then it will perform in the same manner as Run.
本文标签: firefoxHow to open EXE with JavascriptXPCOM as Windows quotRunquotStack Overflow
版权声明:本文标题:firefox - How to open .EXE with JavascriptXPCOM as Windows "Run..."? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745211403a2647907.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论