Asynchronous Pluggable Protocols 初探

Asynchronous Pluggable Protocols,异步可插入协议,允许开发者创建可插协议处理器,MIME过滤器,以及命名空间处理器工作在微软IE4.0浏览器以及更高版本或者URL moniker中。这涉及到Urlmon.dll动态链接库所公开(输出)的可插协议诸多功能,本文不进行深入的原理讲解,只对它其中之一的应用进行解析,那就是如何将一个应用程序注册为URL协议。

应用场景:

tencent协议: 当我们打开"tencent://message/?uin=要链接的QQ号 "这样的网页链接时自动打开本地的qq程序。

thunder协议:当我们单击一个thunder的迅雷链接时会自动打开本地的迅雷下载程序。

原理解析:

当浏览器解析到自定义的URL协议时,就会从注册表中进行查找,并启动该协议注册的相应应用程序。所以我们只需要在注册表中注册一个自定义URL协议及对应应用程序的映射即可。

实践过程:

       注册表中结构:

HKEY_CLASSES_ROOT
     MyPrototy
         (Default) = "这是我自定义协议的说明"
         URL Protocol = "D:\myNote.exe"
         DefaultIcon
           (Default) = "myNote.exe,1"
        shell
            open
               command
                  (Default) = "D:\myNote.exe" "%1"  

以下是tencent协议的注册内容:

附录(.reg脚本写法):

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\MyPrototy]
"URL Protocol"="D:\\MyNote.exe"
@="MyPrototyProtocol"
[HKEY_CLASSES_ROOT\Webshell\DefaultIcon]
@="D:\\MyNote.exe,1"
[HKEY_CLASSES_ROOT\Webshell\shell]
[HKEY_CLASSES_ROOT\Webshell\shell\open]
[HKEY_CLASSES_ROOT\Webshell\shell\open\command]
@="\"D:\\MyNote.exe\" \"%1\""

参考资料:

[1] http://msdn.microsoft.com/en-us/library/aa767916(v=vs.85).aspx  (翻译版):http://www.cnblogs.com/dsky/archive/2013/03/28/2986727.html

[2] http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

Asynchronous Pluggable Protocols 初探,布布扣,bubuko.com

时间: 2024-10-05 03:44:11

Asynchronous Pluggable Protocols 初探的相关文章

IE调用客户端程序

原文地址 https://msdn.microsoft.com/en-us/library/aa767914.aspx#app_reg Registering an Application to a URI Scheme The About Asynchronous Pluggable Protocols article describes how to develop handlers for Uniform Resource Identifier (URI) schemes. In some

[老文章搬家] 关于屏蔽优酷视频广告的一个方法

11年的老文章,稳重那个插件让我爽了很久,不过后来就买会员了.代码我已经遗失了,不过无所谓,思路还是明确的,我后来在 Chrome 上测试过,一样能用. ==== 正文 ==== 需求:优酷最近搞了一个广告防屏蔽,导致修改host的方法不能用了.我们需要一个新方法来绕过这个防屏蔽机制. 基本思想:新版的优酷flv player下载不到广告会罢工30秒,既然不能屏蔽广告,那我们就替换广告文件,用一个假广告文件让flv player播放. 实现:首先抓一下包,或者用Fiddle2拦截请求,会发现优酷

.net Framework Class Library(FCL)

from:http://msdn.microsoft.com/en-us/library/ms229335.aspx 我们平时在VS.net里引用的那些类库就是从这里来的 The .NET Framework class library is a library of classes, interfaces, and value types that provides access to system functionality and is designed to be the foundat

gearman安装

官网:  http://gearman.org/ 一篇文章: 利用Gearman实现异步任务处理 一.问题分析 问题:在性能测试过程中,发现用户管理平台在进行图片上传时,性能不佳. 分析:经过代码分析得知,主要的瓶颈是图片上传后,还需要根据图片组件所在页面模块容器进行一系列处理:图片生成缩略图,裁剪图片,加水印等,这些处理在高并发的情况下,会消耗大量cpu资源,导致系统响应速度非常慢. 旧的处理方式: 次控端调用前台接口进行上传图片后,前台程序先上传图片,接着,进行图片压缩等处理,然后再返回结果

Cisco IOS debug command reference

Command A through D debug aaa accounting through debug auto-config debug aaa accounting : to display information on accountable events as they occur(in privileged EXEC mode) no debug aaa accounting : to disable debugging output debug aaa authenticati

从273二手车的M站点初探js模块化编程

前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数据. 273这个M站点是产品推荐我看的.第一眼看这个产品时我就再想他们这个三次加载和翻页按钮的方式,那么小分页的pageIndex是怎么计算的.所以就顺便看了下源码. 提到看源码时用到了Chrome浏览器的格式化工具(还是朋友推荐我的,不过这个格式化按钮的确不明显,不会的话自行百度). 三次加载和分

buildroot linux filesystem 初探

/****************************************************************************** * buildroot linux filesystem 初探 * 声明: * 在自己做文件系统的时候发现了这个buildroot,可以用来直接做文件系统,于是 * 下载下来自己编译了一下,发现确实是这样的,于是简单尝试一下,先看看效果如何. * * 2016-2-1 深圳 南山平山村 曾剑锋 **********************

【WebSocket初探 】

众所周知,socket是编写网络通信应用的基本技术,网络数据交换大多直接或间接通过socket进行.对于直接使用socket的client与服务端,一旦连接被建立则均可主动向对方传送数据,而对于使用更上层的HTTP/HTTPS协议的应用,因为它们是非连接协议,所以通常仅仅能由client主动向服务端发送请求才干获得服务端的响应并取得相关的数据.而当前越来越多的应用希望可以及时获取服务端提供的数据,甚至希望可以达到接近实时的数据交换(比如非常多站点提供的在线客户系统).为达到此目的,通常採用的技术

构建安全的Xml Web Service系列之初探使用Soap头

原文:构建安全的Xml Web Service系列之初探使用Soap头 Xml Web Service 从诞生那天就说自己都么都么好,还津津乐道的说internet也会因此而进入一个新纪元,可5年多来,Xml Web Service并没有像当初宣扬的那样火起来,尽管在一些领域之内,也有人牛刀小试,但从整体而言,Service还并没有得到广泛的应用,原因有很多,有一些来源于目前各大厂商都坚持自己的service标准,不能形成统一,也有对现有的稳定系统不愿进行更改的原因,但还包括web servic