网页超链接调用本地exe程序
网页超链接调用本地exe程序
由于项目需要将VC MFC做的视频监控程序嵌入到web页面里,因此才开始研究这方面,类似于我们点击了迅雷下载,那么系统默认就会启动迅雷程序一样。 按照微软的推荐,应该通过ActiveX,把可执行程序嵌入到网页中,但是我们要购买ActiveX签名,这种方式对于个人来讲并不合理。
最早的方式就是js调用,但是肯定不安全,因为这样做时木马病毒程序无法阻止,会给用户带来灾难性的后果,当然,IE6之后,微软就不再允许这种调用方式。
于是就想起平时网页的弹出框功能了,包括远程登录Telnet,淘宝的阿里旺旺等,于是就去分析实现的原理。原来这些程序在注册表里都有对应的项,因此当点击时,就会默认执行这些程序。
到这里原理就很明白了,我们就可以把自己写好的程序打包成exe文件,然后把执行该exe程序的路径信息写进注册表,在网页超链接中,就可以利用(协议://参数),exe接收该参数,然后执行。
具体步骤如下:
1、启动注册表:很简单,win+r—>regedit,打开注册表
2、建立自己的协议:在HKEY_CLASSES_ROOT下建立一个自己的协议名称(右键新建项),如Camera,Camera下继续创建两个项,分别为DefaultIcon 和 shell,最后在shell下建立command项,此时自己的协议结构就是这样的,下面开始设置对应的值。
3、首先是Camera项,建立URL Protocol项,并设定默认时的数据
其次是DefaultIcon项,设定数据为要执行的exe文件的全路径
最后是command项,设定数据为exe文件全路径+参数,这里%1就是传递给exe的参数,exe文件接收该参数并执行,如果web网页中的超链接代码为调用远程监控,那么%1这个参数就是“Camera://调用远程监控”字符串。关于参数,Camera://后面的字符串被看作参数,有两种,一种是0,表示完整执行路径,另一种是1,表示网页传过来的字符串。
4、调试,最简单的html代码,核心就是我们自定义的Camera协议,如下:
在web中点击超链接,执行效果如下:
当然,大家也可以去研究研究如何在IE添加自己的bar。至此,利用URL Protocol实现调用本地exe文件程序简单、粗略的实现。
- 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《博瑞博客》。
- 本文网址:http://blog.neacn.com/Windows/85.html
- 上篇文章:网页如何有效调用exe
- 下篇文章:Table显示滚动条