在浏览器中通过Javascript执行本地应用程序

首先打开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" οnclick="startWinrar();" value="执行">
IE中可以使用如下代码:
	function run() {
		var objShell = new ActiveXObject("wscript.shell");
		objShell.run("notepad.exe")
//		objShell.run("notepad E:\\常用工具\\Beyond Compare 3\\BC3Key.txt");
//		objShell.run("notepad C:/Users/chenwei/Desktop/12.txt");
//		objShell.run("file:///C:/Users/chenwei/Desktop/www.huohu123.com.htm");
//		objShell.run("file:///C:/Users/chenwei/Desktop/12.txt");
//		objShell.run("file:///C:/Users/chenwei/Desktop/腾讯QQ.lnk");
//		objShell.run("file:///C:/Users/chenwei/Desktop/indexf.rar");
//		objShell.run("file:///C:/Users/chenwei/Desktop/setup.exe");
//		objShell.run("file:///C:/Users/chenwei/Desktop/目录.doc");
		objShell = null;
	}

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