Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\myprotocol]
@="myprotocol Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\myprotocol\DefaultIcon]
@="C:\\WINDOWS\\NOTEPAD.EXE"
[HKEY_CLASSES_ROOT\myprotocol\shell]
@=""
[HKEY_CLASSES_ROOT\myprotocol\shell\open]
@=""
[HKEY_CLASSES_ROOT\myprotocol\shell\燃没判open\command]
@="\"C:\\WINDOWS\\NOTEPAD.EXE\" "
保存内容为 reg文件,然后执行,就加入注册表,注册了这个名字为myprotocol 的协议.
2. 写测试页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />
</head>
<body>
<div>
<a href="myprotocol://">
执行可执行文件
</a>
</div>
</body>
</html>
运行页面,点击链接察渗,就能直接打开 notepad 。因为这里用的是写字板测试的,可以在注册表中,改成其他任何程序。
芦让穗 您好!很高兴为您答疑。因为新的安全机制的问题,火狐浏览器是无法通过js直接驱动滑笑本地任何文件的,尤其exe等安全级别较高的文件陪卜,请知晓。
如果对我们的回答存在任何疑问,欢迎继续问询。
用js打开exe文件的方法如下:
1、准备exe文件:
在D盘下新建文件夹JSexe,在JSexe下新建C++文件,命名为MakeExe,并写入如下代码:
#include <string>
#include <iostream>
#include <sstream>
using namespace std
int main(int argc, char * argv[])
{ 敏粗 int a
for(int i=0i<argci++){
cout<<argv[i]<<endl
}
cin>>a
return 贺拿誉0
}
2、编译上而代码禅段生成可执行文件,结果如下:
3、在JSexe下新建JSEXE.html文件,写入以下html代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html charset=gb2312">
<title>js</title>
<SCRIPT language=JavaScript>
function Run(strPath)
{
try
{
var objShell = new ActiveXObject("wscript.shell")
objShell.Run(strPath)
objShell = null
} catch(e){
alert('找不到文件"'+strPath+'"(或它的组件之一)。请确定路径和文件名是否正确.')
alert(e.message)
alert(e.description)
alert(e.number)
alert(e.name)
}
}
</SCRIPT>
</head>
<!--以下是三种调用方式,onLoad(),oclick(),再就是直接写连接地址调用-->
<body >
<a href="#" onclick="Run('file:///D:/Php/Apache/htdocs/JSexe/zhaochao.exe Hello World')">运行EXE</a>
</body>
</html>
4、用IE打开JSEXE.html,点击”运行EXE“可看到效果如下:
注意:
1.只能在支持Active控件的浏览器上运行
2.如果Active控件被阻止,请设置IE属性允许加载Active控件,设置方法在IE里Internet项->安全 自定义级别,将ActiveX控件和插件里选项都启用,如
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)