Chinaunix首页 | 论坛 | 博客
  • 博客访问: 725
  • 博文数量: 1
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-26 16:48
文章分类
文章存档

2012年(1)

我的朋友
最近访客

分类: Mysql/postgreSQL

2012-06-02 14:56:32

基于浏览器的应用,表现力始终不够丰富,我们常常会想,在一个网页中,点一下某个链接,能够直接调用安装好的可执行程序有多好啊。按照微软的推荐, 应该是通过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就是网页传过来的字符串。


阅读(248) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~