注册自定义URL协议

原创 2006年05月29日 16:40:00

用过电驴的朋友都知道电驴有这么一个功能,在网页上点击电驴资源的链接,如果你的机器上安装了电驴,那么电驴就会自动启动,然后下载所选的资源。这些日子做项目的时候Boss刚好提了这么个需求,经一位同事指点,研究了一下,原来是酱子实现的。

首先查看一下电驴资源的链接,可以看到全部是已ed2k开头的,比如这个:

ed2k://|file|06527%E5%A5%87%E8%B6%A3%E5%A4%A7%E8%87%AA%E7%84%B6_%E5%BE%AE%E8%A7%82%E4%B8%96%E7%95%8C%28%E4%B8%8B%29.rmvb|89831750|02C2BAFDCC4950CC3C2E6F583C07E896|h=T3ZB75TXBLJU5AAL6WSTYWMT6YJPUIQS|/

 

真没想到原来这么简单的,我在这里记录下来:

如果你要让程序处理某个自定义URL协议的话,只要在HKEY_CLASSES_ROOT注册一下这个协议就可以了。

比如我们网站上的链接都是已CustomProtocol开头的,例如:CustomProtocol://www.MyWeb.com/xxx.rar,我们要求用户点击这个链接的时候启动我们的CustomApp程序来处理,那么我们只要注册CustomProtocol协议就可以了,具体就是在HKEY_CLASSES_ROOT按照下面的样子建立各个项目:

HKEY_CLASSES_ROOT
CustomProtocol                                                                     协议的名称,比如电驴的就是ed2k
(Default) = "URL:Custom Protocol"                        协议显示的名称,随便写写
URL Protocol= ""                                                        这里可以写下协议的描述什么的,否则就为空吧
DefaultIcon
(Default) = "CustomApp.exe"                     默认图标,一般都是CustomApp的名字
shell
      open
            command
      (Default) = "C:/CustomApp.exe" "%1" CustomApp的全路径名

这样注册下就ok了,当用户点击网站上那些以CustomProtocol开头的链接的时候,系统就会调用CustomApp,并且把完整的链接作为参数传给CustomApp。

非常简单吧,如果还有什么不明白的,安装下电驴,在注册表里查下HKEY_CLASSES_ROOT下面的ed2k项,看看电驴是怎么写的。

 

而普通的文件下载一般都是Http或者Ftp的, 那么大家看下MSDN这篇文章,就全明白了:http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/pluggable/overview/appendix_a.asp?frame=true

相关文章推荐

自定义URL Protocol 协议

自定义URL Protocol 协议 一些应用软件可以在浏览器中点击一个url后自动启动,并执行操作。这是咋实现的呢? 我在 google了许多也找个博客说明。接照这些文档我也新手试了一下。 通过网站...

用自定义协议调用自己的程序

译自:“LaunchingYour Own Application via a Custom URL Scheme” iPhone SDK中最酷的功能之一是一个应用程序能够把自己和自定义的URL协议绑...
  • kmyhy
  • kmyhy
  • 2011年08月19日 16:15
  • 11080

DELPHI实现通过URL触发自定义协议的软件

{*** 文件名称:uMainForm.pas* 文件类别:delphi 代码文件** 文件版本:0.1* 作    者:俞伟* 完成时间;2008-01-28* 联系方式: yu924@hotmai...

Java URL协议扩展实现

在信息交互系统设计中,不乏有自定义通讯协议设计。本章会介绍如何利用 java.net.URL 类来自定义协议。         一般而言, URL 的格式是: protocol://[author...

通过自定义URL协议在Web中启动本地应用程序

通过自定义URL协议在Web中启动本地应用程序 1、注册应用程序来处理自定义协议      你必须添加一个新的key以及相关的value到HKEY_CLASSES_ROOT中,来使应用程序...

如何实现自定义的URL协议

IURLSearchHook        该接口被浏览器用来转换一个未知的URL协议地址。当浏览器企图去打开一个未知协议的URL地址时,浏览器首先尝试从这个地址得到当前的协议,如果不成功,浏览器将创...
  • lbird
  • lbird
  • 2006年05月11日 17:56
  • 3683

百度分享如何自定义分享url和内容?

百度分享默认分享的是当前页的url,但也可以在同一个页面中分享多个不同的url,仅需进行如下简单的配置。 默认的代码如下: 其实是有很多隐藏的参数的: 'bdDes':'...
  • slpond
  • slpond
  • 2016年11月23日 23:03
  • 490

通过自定义URL协议在Web网页中启动本地应用程序

在做web应用的时候,我们经常会遇到在web中调用本地应用程序的问题,例如在web中点击一个按钮,然后打开自己写的或者别人的应用程序。上网比较留意的同学应该会发现,想qq客服,淘宝的阿里旺旺客服都会有...

利用URL Protocol实现网页调用本地应用程序

亲自利用URL Protocol技术实现web调用本地的win32控制台程序。
  • zssureqh
  • zssureqh
  • 2014年05月14日 20:20
  • 27508

在Mac和iOS中注册自定义的URL Scheme

在Mac和iOS中注册自定义的URL Scheme 在Mac和iOS中注册自定义的URL Scheme JAN 10TH, 2012 URL Scheme是类似http://...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:注册自定义URL协议
举报原因:
原因补充:

(最多只允许输入30个字)