Firefox经过设置就可以实现,另外找到一段代码可以在经过设置的IE6中实现,但不适用于IE8.

首先打开Firefox浏览器,在地址栏输入about:config,将signed.applets.codebase_principal_support的属性值设置为true;

然后调用如下Javascript代码:

<script language="javascript">
var url="E:\\";
function startWinrar(){
 try{
  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
  file.initWithPath('C:\\Program Files\\WinRAR\\WinRAR.exe');
  var process=Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess);
  process.init(file);
  var arguments = [url];
  process.run(false,arguments,arguments.length);
 }catch(e){
  alert(e);
 }
}
</script>
<input type="button" onclick="startWinrar();" value="执行">

IE6中可以使用如下代码:

function run(){ 
  var objShell = new ActiveXObject("wscript.shell"); 
  objShell.Run("file:///c:/1.txt");
  objShell.Run("file:///c:/DHTML1.chm.lnk");
  objShell.Run("notepad C:/WINDOWS/system32/drivers/etc/hosts");
  objShell = null;
}

注意path的写法,可以直接调用文件,任何快捷方式后面都要加上.lnk才起效果。
由于安全限制的原因,这个方法不一定会成功,所以最好加try…catch。
具体和哪个安全限制有关呢?
打开工具-》选项-》安全,首先把含有这个脚本的网页加入到本地站点
编辑自定义级别,将按将对没有标记为安全的ActiveX进行初始化。。设为启用就ok了。
wscript.shell还有一些很有用的方法
比如想自动把剪贴版上内容粘贴到焦点位置
只要objShell.SendKeys(“^v”);就可以了

http://blog.csdn.net/lenel/archive/2007/07/24/1705010.aspx

Published in JavaScript

One Response to “在浏览器中通过Javascript执行本地应用程序”

  1. 九月 30th, 2010 at 8:13 上午 #电子门户

    好好学习学习

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)