zoukankan      html  css  js  c++  java
  • 【转载】Chrome使用自定义协议打开本地程序并运行IE打开网页

    部分内容转载自: http://blog.sina.com.cn/s/blog_e2b8213a0102wqby.html

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

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

    [HKEY_CLASSES_ROOTopenIE]  
    @="URL:OpenIE Protocol"  
    "URL Protocol"=""  
      
    [HKEY_CLASSES_ROOTopenIEDefaultIcon]  
    @="iexplore.exe,1"  
      
    [HKEY_CLASSES_ROOTopenIEshell]  
      
    [HKEY_CLASSES_ROOTopenIEshellopen]  
      
    [HKEY_CLASSES_ROOTopenIEshellopencommand]  
    @="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_ROOTalert]
    @="URL:Alert Protocol"
    "URL Protocol"=""
    
    [HKEY_CLASSES_ROOTalertDefaultIcon]
    @="iexplore.exe,1"
    
    [HKEY_CLASSES_ROOTalertshell]
    
    [HKEY_CLASSES_ROOTalertshellopen]
    
    [HKEY_CLASSES_ROOTalertshellopencommand]
    @="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 Filesalert路径下,虽然不知道它是如何实现的,但是不妨碍我进行改造处理。比如给换个路径,比如换一个执行程序(当然执行程序支持命令行参数启动)。

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

          

  • 相关阅读:
    嵌入式Linux系统移植(二)——交叉编译工具集
    嵌入式linux系统移植(一)
    C语言常用关键语法精华总结
    ARM汇编常用指令
    嵌入式Linux系统移植——uboot常用命令
    VHDL的参数写在一个vhd文件里
    [PAT] 1077 Kuchiguse (20 分)Java
    [PAT] 1073 Scientific Notation (20 分)Java
    [PAT] 1069 The Black Hole of Numbers (20 分)Java
    [PAT] 1065 A+B and C (64bit) (20 分)Java
  • 原文地址:https://www.cnblogs.com/cnDqf/p/9809276.html
Copyright © 2011-2022 走看看