js调用本地exe程序的两种方式

第一种方法:就是 url protocol 的方式来实现。用这种方式实现,任何浏览器都兼容,不会存在只有IE或FIREFOX才行的情况。
都用过QQ,迅雷,电驴,在网页上点击的时候,就会弹出QQ,或者迅雷,电驴的下载界面,用的就是这个原理,在微软的MSDN上也有说明:http://msdn.microsoft.com/en-us/library/aa767914%28v=vs.85%29.aspx 在这里,做一个简单的例子。

第一步先要写入注册表,先注册URL PROTOCOL, 在windows 下就是注册表:

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.reg),然后执行,就加入注册表,注册了这个名字为myprotocol 的协议.

第二步:测试页面


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
head>
<body>
<div>
    <a href="myprotocol://D:\cmt-static\myprotocol.reg">
        执行可执行文件
    a>
div>
body>
html>

运行页面,点击链接,就能直接打开 notepad 。因为这里用的是写字板测试的,你可以在注册表中,改成其他任何你要的程序。

你可能感兴趣的:(javascript)