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

项目中遇到某需求: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\路径下,虽然不知道它是如何实现的,但是不妨碍我进行改造处理。比如给换个路径,比如换一个执行程序(当然执行程序支持命令行参数启动)。

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

【转载】Chrome使用自定义协议打开本地程序并运行IE打开网页的更多相关文章

  1. 使用浏览器自定义协议启动本地程序(.EXE文件)

    比如,自定义协议名称为 myapp,要启动的本地程序为 myapp.exe. 1)首先向注册表添加如下内容: Windows Registry Editor Version 5.00 [HKEY_CL ...

  2. 通过私有协议Chrome浏览器页面打开本地程序

    近期方有这样的要求:这两个系统,根据一组Chrome开展,根据一组IE开展,需要Chrome添加一个链接,然后进入IE该系统的开发.这,需要Chrome跳转到创建一个链接IE浏览器指定的页面.同时也实 ...

  3. C#注册URL协议,使用浏览器打开本地程序,类似网页上点了QQ交谈打开本地QQ客户端程序

    本教程适用于Windows系统 从浏览器上打开本地程序,主要用到了本地URL协议,其实主要就是改注册表 先建立一个项目,我建的是控制台项目 在Program.cs写2个静态方法用来添加注册表.移除注册 ...

  4. html JS 打开本地程序及文件

    在网页打开本地应用程序示例: 一.在本地注册表自定义协议:以自定义调用Viso为例 1.在HKEY_CLASSES_ROOT下添加项ZVISIO. 2.修改ZVISIO项下的"(默认)&qu ...

  5. 第45篇 js操作打开本地程序

    原文地址:http://blog.laofu.online/2017/06/10/how-js-controlApp/ 背景 假设有这样一个产品,一个web和一个winform客户端,在客户在web的 ...

  6. Google Chrome 自定义协议(PROTOCOL)问题的处理

    最近在使用谷歌浏览器的时候遇到了自定义协议(PROTOCOL)的问题,比较折腾,特此记录,希望我浪费生命换来的结果能够帮助读到此文的朋友少浪费一点宝贵的时间! 由于某些原因,电脑里一直没有安装阿里旺旺 ...

  7. 基于Flash与window平台本地程序通信实现媒体流发布

    0 Web场景下的媒体流发布可以采用Flash原生API实现,但是Flash H264视频压缩参数不可控.音频无法AAC编码,所以一般采用浏览器插件方式,但是浏览器插件有版本兼容问题.不稳定,所以可以 ...

  8. DOS命令行(3)——Windows运行窗口打开特定功能

    cmd 开启命令解释权或启用Windows中的某程序 cmd /c 执行完命令后关闭命令窗口 cmd /k 执行完命令后不关闭命令窗口   winver 查看Windows版本信息版权信息授权信息   ...

  9. 在chrome浏览器中调用IE浏览器并访问(openIE.reg自定义协议)

    在谷歌浏览器中有4种方法调用IE浏览器.如下: c++ socket通过浏览器在ie中打开指定url : vb生成exe,url访问exe启动ie并打开指定url : 通过socket实现通过http ...

随机推荐

  1. C# keybd_event用法 模拟键盘输入

    最近有业务需求,需要模拟键盘输入,所以了解了一下C#中keybd_event函数的用法.该函数能够产生WM_KEYUP或WM_KEYDOWN消息,即可以触发键盘事件. 函数引用如下: [DllImpo ...

  2. imageNamed 与 imageWithContentsOfFile差额

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助.欢迎给作者捐赠,支持郝萌主,捐赠数额任意.重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 普通情况下 ...

  3. C# 程序内的类数量对程序启动的影响

    原文:C# 程序内的类数量对程序启动的影响 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http://lindexi.gitee.i ...

  4. vue 使用ztree

    1 全局引入jquery , 不明白的看我上一个的随笔 , 特别简单 2 我没有封装组件 , 项目里面这个效果的只用了一次 , 没有必要 在你的<script>标签下面引入这俩东西 , 前 ...

  5. 数据结构:点之间的最短距离--Floyd算法

    Floyd算法 Floyd算法 Dijkstra算法是用于解决单源最短路径问题的,Floyd算法则是解决点对之间最短路径问题的.Floyd算法的设计策略是动态规划,而Dijkstra採取的是贪心策略. ...

  6. Gram 矩阵性质及应用

    v1,v2,-,vn 是内积空间的一组向量,Gram 矩阵定义为: Gij=⟨vi,vj⟩,显然其是对称矩阵. 其实对于一个XN⋅d(N 个样本,d 个属性)的样本矩阵而言,X⋅X′ 即为 Gram ...

  7. Java设计模式透析之 —— 单例(Singleton)

    写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上线后还可以帮助你分析数据.但是Java原生带有的System.out.println()方法却很少在真正的项目开发中使用,甚至像f ...

  8. 1.node 在node中 进行包与包之间函数的调用 module.exports

    本文参考学习了廖雪峰的大作 模块 但是廖的文章只模块只有一个函数,在此演示一个模块中有两个函数,在另外一个函数中是如何去调用的 //hello.js包中的内容'use strict'; var s=' ...

  9. SpringBoot、Groovy

    Java——搭建自己的RESTful API服务器(SpringBoot.Groovy)   这又是一篇JavaWeb相关的博客,内容涉及: SpringBoot:微框架,提供快速构建服务的功能 Sp ...

  10. python3批量查询域名是否注册

    #!/usr/local/bin/python3 #coding=utf-8 import re,sys,os,random,time, base64 import urllib.parse, url ...