利用URL protocol在网页打开本地exe
Registering the Application Handling the Custom URI Scheme
To register an application to handle a particular URI scheme, add a new key, along with the appropriate subkeys and values, to HKEY_CLASSES_ROOT. The root key must match the URI scheme that is being added. For instance, to add an "alert:" scheme, add an alert key to HKEY_CLASSES_ROOT, as follows:
HKEY_CLASSES_ROOT
alert
URL Protocol = ""
Under this new key, the URL Protocol string value indicates that this key declares a custom pluggable protocol handler. Without this key, the handler application will not launch. The value should be an empty string.
Keys should also be added for DefaultIcon and shell. The Default string value of the DefaultIcon key must be the file name to use as an icon for this new URI scheme. The string takes the form "path, iconindex" with a maximum length of MAX_PATH. The name of the first key under the shell key should be an action verb, such as open. Under this key, a command key or a DDEEXEC key indicate how the handler should be invoked. The values under the command and DDEEXEC keys describe how to launch the application handling the new protocol.
Finally, the Default string value should contain the display name of the new URI scheme. The following example shows how to register an application, alert.exe in this case, to handle the alert scheme.
HKEY_CLASSES_ROOT
alert
(Default) = "URL:Alert Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "alert.exe,1"
shell
open
command
(Default) = "C:\Program Files\Alert\alert.exe" "%1"
When a user clicks a link containing your custom URI scheme, Windows Internet Explorer launches the pluggable protocol handler registered for that URI scheme. If the specified open command specified in the registry contains a %1 parameter, Internet Explorer passes the URI to the registered pluggable protocol handler application.
- 在注册表里新建register key
在注册表里新建一个key,按照URL protocol的格式,设置好路径。



也可以写一个.reg文件,打开文件即可注册key了。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\HelloRio]
"URL Protocol"="C:\\Program Files (x86)\\HelloRio\\HelloRio.exe"
@="HelloRioProtocol"
[HKEY_CLASSES_ROOT\HelloRio\DefaultIcon]
@="C:\\Program Files (x86)\\HelloRio\\HelloRio.exe,1"
[HKEY_CLASSES_ROOT\HelloRio\shell]
[HKEY_CLASSES_ROOT\HelloRio\shell\open]
[HKEY_CLASSES_ROOT\HelloRio\shell\open\command]
@="\"C:\\Program Files (x86)\\HelloRio\\HelloRio.exe\" \"%1\""
第一行表示用的注册表工具。
然后就是对应需要新建项在注册表中的路径,以及对应键值。双击该文件,即可自动在注册表中注册一个URL Protocol。
写一个test的html。或者在地址行直接键入。

最后就会提示luanch你的exe了。这里我写了一个比较简单的应用程序,实际上当我们在register key,%1代表我们接受参数。
实际上传入的参数是HelloRio:myrio,这里需要解析字符串。本来想用正则表达式,无奈正则表达式学得不好。+。+
#include <Windows.h>
#include <iostream>
#include <cstring>
#include <regex> using namespace std; int main(int argc,char* argv[]){
if(argc<){
MessageBox(NULL,TEXT("Please input a parameter£¡"),TEXT("HelloRio"), MB_OK);
exit();
}
else{ string s1=string(argv[]);
//search the right parameter auto i=find(s1.begin(),s1.end(),':');
i++;
string s2="hello"+string(i,s1.end());
wstring tmp(s2.begin(),s2.end());
const wchar_t* t=tmp.c_str();
t+='\0';
MessageBox(NULL,t,TEXT("HelloRio"), MB_OK);
return ;
}
}
腾讯的key:


用JavaScript在HTML里打开exe,需要Active X且不被浏览器接受(因为安全性因素)
<html>
<head>
<script language="javascript">
function Run(strPath)
{
var objShell = new ActiveXObject("wscript.shell");
objShell.exec(strPath);
objShell = null;
}
</script>
</head>
<body>
请输入要运行的程序路径:<br>
<input name=exe type=text size=20 value="D:\\a.doc">
<BUTTON class=button onclick="Run(exe.value)">确定</BUTTON>
</body>
</html>
利用URL protocol在网页打开本地exe的更多相关文章
- 利用URL Protocol实现网页调用本地应用程序
http://blog.csdn.net/zssureqh/article/details/25828683
- Js调用exe程序方法(通过URL Protocol实现网页调用本地应用程序)
1.使用记事本(或其他文本编辑器)创建一个protocal.reg文件,并写入以下内容 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROO ...
- 利用Pluggable Protocol实现浏览器打开本地应用程序
https://www.cnblogs.com/liushaofeng89/archive/2016/05/03/5432770.html
- html网页调用本地exe程序的实现方法:
html网页调用本地exe程序的实现方法:1.新建注册表具体文件: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\hhtpexe] [ ...
- PHP 网页调用本地exe程序实例
一.需求:在做网站的时候,有些网站网页面需要调用本地的exe程序. 二.方法:利用注册URL Protocol的方式. 代码如下: 1.视图文件里面的代码: <a href="fyex ...
- 利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)
前言 我们经常看到 tencent://.. thunder:// 这两种开头的网址,往往觉得很奇怪,很想弄懂其中的原理,是如何实现的,我查找了相关的 资料,终于找到了,跟大家分享下. 原理篇 ...
- html网页调用本地exe程序
1.使用记事本(或其他文本编辑器)创建一个protocal.reg文件,并写入以下内容 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\ ...
- html网页调用本地exe程序的实现方法(转)
https://blog.csdn.net/ilovecr7/article/details/46803711 最近在做一个项目,要什么网页里调exe...开始以为不能实现,后来想想很多就跟淘宝网页上 ...
- JS IE 打开本地exe程序
例: try{ //新建一个ActiveXObject对象 var exe = new ActiveXObject("wscript.shell"); var exePath = ...
随机推荐
- 对象序列化 输入输出流概念 InputOutStream OutputStream
序列化:内存到文件 他是输出流 ObjectOutputStream 需要强制类型转换 必须实现seriazable接口 反序列化:文件到内存 输入流 O ...
- biz-NewsService
package com.pb.news.service; import java.util.List; import com.pb.news.entity.News; public interface ...
- oracle预定义角色
角色是相关权限的集合,使用角色能够简化权限的管理.简而言之就是oracle可以事先把一系列权限集中在一起(角色),打包赋予给用户,那么用户就具有了角色的一系列权限. oracle预定义角色有25种,它 ...
- 求从n个数组任意选取一个元素的所有组合
最近做项目碰到这个问题,如题从n个数组任意选取一个元素的所有组合.比如已知数组是[1, 3]; [2, 4]; [5]; 最后组合结果是[1, 2, 5]; [1, 4, 5]; [3, 2, 5] ...
- JavaScript一个简易枚举类型实现扑克牌
<script type="text/javascript"> /** * 这个函数创建一个新的枚举类型,实参对象表示类的每个实例的名字和值 * 返回值是一个构造函数, ...
- 简单介绍Struts2
Struts2概述 Struts2虽然是Struts1的基础上发展起来的,但是实质上是以WebWork框架为核心,为传统的Struts1注入了WebWork的设计理念,统一了Struts1和WebWo ...
- Linux 文本行列转换
使用awk进行行列转换 假设有一个文件 test ,包含的数据遵循以下格式: 同一行数据,单词之间为1个空格" " 每一行都有同样多的数据,个数相同 处理命令: awk '{for ...
- 以图像分割为例浅谈支持向量机(SVM)
1. 什么是支持向量机? 在机器学习中,分类问题是一种非常常见也非常重要的问题.常见的分类方法有决策树.聚类方法.贝叶斯分类等等.举一个常见的分类的例子.如下图1所示,在平面直角坐标系中,有一些点 ...
- (转)java提高篇(一)-----理解java的三大特性之封装
从大二接触java开始,到现在也差不多三个年头了.从最基础的HTML.CSS到最后的SSH自己都是一步一个脚印走出来的,其中开心过.失落过.寂寞过.虽然是半道出家但是经过自己的努力也算是完成了“学业” ...
- dubbo搭建例子
现在很多公司用到dubbo,使用起来是很快就学会了.真的要熟悉它还是要花点功夫的. 前面尝试看了些它的源码,这里为了调试源码,先打搭一个能跑的项目,顺别分享出来,以便刚像学习的朋友节约时间,毕竟时间至 ...