Chrome使用自定义协议打开本地程序并运行IE打开网页

文章介绍了如何在项目中通过注册表实现Chrome使用自定义协议运行IE并打开网页,避免弹出命令框。作者分享了使用alert协议的解决方案,包括创建alert.reg、openIE.bat以及runreg.bat脚本,以提升用户体验。

       项目中遇到某需求:chorme要运行IE并打开网页。解决方案之一就是通过自定义协议来实现该需求。

       在注册表中写入如下内容来进行自定义协议

[HKEY_CLASSES_ROOT\openIE]  
@="URL:OpenIE Protocol"  
"URL Protocol"=""  
  
[HKEY_CLASSES_ROOT\openIE\DefaultIcon]  
@="iexplore.exe,1"  
  
[HKEY_CLASSES_ROOT\openIE\shell]  
  
[HKEY_CLASSES_ROOT\openIE\shell\open]  
  
[HKEY_CLASSES_ROOT\openIE\shell\open\command]  
@="cmd /c set m=%1 & call set m=%%m:openIE:=%% & call \"C:\\Program Files\\Internet Explorer\\iexplore.exe\" %%m%% & exit" 

然后使用openIE协议,如《a href = “openIE:http://www.baidu.com”》点我使用外部协议运行IE打开百度《/a》进行访问百度。

        但是这样会弹出cmd的命令框,给用户带来不好的体验。解决方法如下:

        链接:http://pan.baidu.com/s/1sllgzxV 密码:ugpk

         内容是一个可以解压的exe,解压后有三个文件:alert.reg 与上边的openie协议大同小异,将协议名称换成了alert。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\alert]
@="URL:Alert Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\alert\DefaultIcon]
@="iexplore.exe,1"

[HKEY_CLASSES_ROOT\alert\shell]

[HKEY_CLASSES_ROOT\alert\shell\open]

[HKEY_CLASSES_ROOT\alert\shell\open\command]
@="cmd /c set m=%1 & \"C:\\Program Files\\alert\\openIE.bat\" %%m%% & exit"

并且将command换成了bat文件,不再是直接打开ie。bat文件内容入下:

@echo off
set m=%m:alert:=%
set m="%m:separator=&%"
start "" "C:\\Program Files\\Internet Explorer\\iexplore.exe" %m%
exit

 这些命令虽然写不出来,但是不妨碍我们读懂,将使用alert协议访问的地址作为参数进行处理,然后通过ie打开。

     最后一个文件是runreg.bat,内容如下:

REGEDIT /S alert.reg

      很显然作为exe,双击执行的就是这个regedit,将注册表写好的同时,也将openie.bat复制到了C:\Program Files\alert\路径下,虽然不知道它是如何实现的,但是不妨碍我进行改造处理。比如给换个路径,比如换一个执行程序(当然执行程序支持命令行参数启动)。

       自定义协议可以帮助我们通过浏览器打开本地程序,当然不仅限于此。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Ale-阿乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值