在注册表创建类似下面的键项和键值,
QQ:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/Tencent]
@="TencentProtocol"
"URL Protocol"="C://Program Files//Tencent//QQ//Timwp.exe"
[HKEY_CLASSES_ROOT/Tencent/DefaultIcon]
@="C://Program Files//Tencent//QQ//Timwp.exe,1"
[HKEY_CLASSES_ROOT/Tencent/shell]
[HKEY_CLASSES_ROOT/Tencent/shell/open]
[HKEY_CLASSES_ROOT/Tencent/shell/open/command]
@="/"C://Program Files//Tencent//QQ//Timwp.exe/" /"%1/""
阿里旺旺:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/Alitalk]
"URL Protocol"=""
[HKEY_CLASSES_ROOT/Alitalk/Shell]
[HKEY_CLASSES_ROOT/Alitalk/Shell/Open]
[HKEY_CLASSES_ROOT/Alitalk/Shell/Open/Command]
@="/"C://Program Files//Alisoft//WangWang//WangWang.EXE/" %1"
当我们点击网页上的链接或者直接通过浏览器输入tencent://或Alitalk://这样的URL时,这些输入全部作为命令行参数传递给应用程序。
我们的客户端程序需要对这些输入进行解析,然后做出响应。
第二种方式需要使用apps(Asynchronous Pluggable Protocols),需要apps的规则编写一个COM组件,MSN就是这种方式.
安装MSN的过程中会注册msgrapp.8.5.1288.0816.dll(我的机器上是这个文件,MSN是8.5的),同时在注册表注册msnim这个自定义协议scheme,
代码如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/PROTOCOLS/Handler/msnim]
"CLSID"="{828030A1-22C1-4009-854F-8E305202313F}"
{828030A1-22C1-4009-854F-8E305202313F}就是这个协议对应的处理器(msgrapp.8.5.1288.0816.dll)的CLSID。
注册成功后,我们在浏览器中输入任何的以msnim:开头的URL请求都会发送到这个COM组件,由这个DLL来处理。
关于apps可以参考MSDN:
http://msdn2.microsoft.com/en-us/library/aa767916.aspx#About_URLs_and_Name_