Chinaunix首页 | 论坛 | 博客
  • 博客访问: 422712
  • 博文数量: 78
  • 博客积分: 1563
  • 博客等级: 上尉
  • 技术积分: 910
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-25 09:58
个人简介

爬虫

文章分类

全部博文(78)

文章存档

2020年(1)

2016年(1)

2015年(9)

2014年(1)

2013年(8)

2012年(6)

2011年(3)

2010年(4)

2008年(8)

2007年(13)

2006年(24)

我的朋友

分类: WINDOWS

2012-05-31 11:57:46

基于浏览器的应用,表现力始终不够丰富,我们常常会想,在一个网页中,点一下某个链接,能够直接调用安装好的可执行程序有多好啊。按照微软的推荐, 应该是通过ActiveX,把可执行程序嵌入到网页中,例如flash的ActiveX。这样,我们就要购买ActiveX的签名,不通过签名的东西,在 IE6中是无法加载的,为一个小项目购买ActiveX的签名,代价太昂贵了。另外,很多时候还要考虑如果用户突然关闭了浏览器该怎么办。这对播放个 flash、歌曲之类的没多大影响,但是很多时候,不能在关闭前清扫战场,带来的后果是灾难性的。通常,在企业应用中,我们总是通过IE直接调用exe。

     在windows中,注册表中包含各种协议(http,ftp,telnet等)的信息,包含了默认打开方式的参数。试一下,从IE的地址栏中输入,出现什么了?弹出了一个命令行窗口,开始进行telnet操作。IE居然能完成这个,那么为什么就不能完成“telnet1://参数” 呢?

REGEDIT4  
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\notenote]
@="URL:notenoteProtocol"
"URL Protocol"="notepad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\notenote\DefaultIcon]
@="notepad.exe,1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\notenote\shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\notenote\shell\open]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\notenote\shell\open\command]
@="\"notepad.exe\",\"%1\"" 

把这个东西导入注册表,那么我们在浏览器中输入notenote://      你将有惊喜的收获。

到这里,思路就清晰了,我们的安装程序中,在注册表中建个协议,例如上面的notenote,再把要执行的exe的路径信息写入,在网页直接一个超链接,协议://参数就可以了。exe文件接受这个参数,进行相应的处理。搞定。

    记住,协议://后面的所有字符串被看做是一个参数。那么,exe文件永远只有两个参数,参数0是它的完整执行路径,参数1就是网页传过来的字符串。

阅读(2519) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~