关闭

注册自定义URL协议

4956人阅读 评论(2) 收藏 举报

用过电驴的朋友都知道电驴有这么一个功能,在网页上点击电驴资源的链接,如果你的机器上安装了电驴,那么电驴就会自动启动,然后下载所选的资源。这些日子做项目的时候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
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:52356次
    • 积分:716
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:9篇
    • 译文:0篇
    • 评论:10条
    最新评论