浏览器中调用本地应用程序

前言:

很多时候,我们需要在一个web页面(即html中)调用本地的应用程序,包括系统的应用程序和自己编写的应用程序。其实说得严格一点,并不是总是调用本地的应用程序,因为一个html页面不是为了给自己用的,是给别人用的,就是客户端,html中所调用的应用程序称之为”本地应用”是针对服务器端的,对于客户端而言并不是真正的本地应用。因此,这就必须搭建一个服务器,本文档的重点不是搭建服务器,关于搭建服务器的内容,请参看其他相关文档。

如果仅仅是在IE中实现调用本地应用的话并且对安全性要求不高的话,可以采用类似如下方式:








其中strPath 是要启动的应用程序的完整路径,特别注意,这个方法只能在IE中执行,因为Active插件的安全性极低,Chrome,Firefox,360等主流浏览器都不支持Active,为什么?因为你既然可以如此轻而易举的访问本地的应用程序,说得直白一点就是对本地文件的访问非常容易,但是我们对我们即将访问的网站的安全性都是不了解的,万一某个流氓网站就通过这个把你计算机上的数据全给删了或者莫名其妙的给你下载一些垃圾数据,这样的后果我们是不希望的,但不排除有人会这么做,所以即便是IE它自己,也要提示你两次以上,你确认之后才会启用Active插件来完成相关操作,它不仅不安全而且不方便。

 

       下面介绍如何在主流的浏览器中实现调用本地的应用程序。读者你可能也直接试过用 a 标签进行链接过,但是结果是不是都是需要先下载保存才能打开?而且是每次都需要下载,这样的效果并不是我们的初衷。为此,下面介绍使用自定义协议的方式来实现这样的效果,关于自定义的具体信息,在此也不再赘述,只需要如何使用即可。新建一个一个文本文件,参照下面的内容往文本里面写入相关信息。(此例是实现调用 F:/Repository/Projects/森林防火指挥信息系统.exe文件)

WindowsRegistry Editor Version 5.00

[HKEY_CLASSES_ROOT\myprotocol]

@="myprotocolProtocol"

"URLProtocol"=""

[HKEY_CLASSES_ROOT\myprotocol\DefaultIcon]

@="F:\\Repository\\Projects\\森林防火指挥信息系统.exe"

[HKEY_CLASSES_ROOT\myprotocol\shell]

@=""

[HKEY_CLASSES_ROOT\myprotocol\shell\open]

@=""

[HKEY_CLASSES_ROOT\myprotocol\shell\open\command]

@="\"F:\\Repository\\Projects\\森林防火指挥信息系统.exe\""

 

之后,将文件保存为 .reg 格式,就是注册表文件,双击此文件,(如果装有杀毒软件,请选择允许所有操作)即可注册协议。

代码解释:

第一行:可有可无,是注册表编辑器的版本信息

第二行:在注册表目录HKEY_CLASSES_ROOT下创建一个myprotocol的分支(就类似于一个文件夹,可以取自己喜欢的名字,记得此后用到的地方必须一致即可)。

第三行:协议名称

第四行:默认(也可以写完整的路径,与第六行的路径相同)

第五行:原理同第三行

第六行:应用程序完整路径(切记路径的写法)

第七行往后:参看前面几行,原理相同,最后一行表示的是不带参数的应用程序,如果带参数,这么写@="\"F:\\Repository\\Projects\\森林防火指挥信息系统.exe\" 1% \””

 

之后,可以在页面中使用

打开程序

即可打开森林防火指挥信息系统.exe

 

你可能感兴趣的:(学习笔记)