Tencent://Message/协议的实现原理

腾讯官方通过 Tencent://Message/协议可以让QQ用户显示QQ/TM的在线状态发布在互联网上;并且点击 ,不用加好友也可以聊天:

 

官方链接: http://is.qq.com/webpresence/code.shtml

具体代码:

<a href=" tencent://message/?uin=215555521&Site=JooIT.com&Menu=yes">
<img border="0" SRC='http://wpa.qq.com/pa?p=1:215555521:3' alt="点击这里给我发消息">
</a>

但它是如何实现的呢?下面文章以及微软官方说明详细解释了其工作原理:

 



微软官方说明:http://msdn.microsoft.com/zh-cn/library/aa767914(en-us,VS.85).aspx

Register protocol,此文中对于 Windows、Linux 和 OS X 操作系统如何注册协议都有说明。比如说 Windows,其实只需写入注册表,即可实现协议与执行程序的关联。例如腾讯的Tencent://Message协议注册表如下:

[HKEY_CLASSES_ROOT\TENCENT]
@=”TencentProtocol”
“URL Protocol”=”D:\\Program Files\\Tencent\\QQ\\Timwp.exe”

[HKEY_CLASSES_ROOT\TENCENT\DefaultIcon]
@=”D:\\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]
@=”\”D:\\Program Files\\Tencent\\QQ\\Timwp.exe\” \”%1\”"

此注册表所实现的就是当浏览器(或其它)碰到 tencent://… 时,自动调用 Timwp.exe,并把 tencent://… 地址作为第一个参数传递给 Timwp.exe,并通过Timwp.exe判断传入的参数格式,若正确则检查系统中是否存在TIMPlatform.exe进程,不存在则提示"系统检测到您的机器上没有启动QQ",若存在则判断是否有已经登陆的QQ,没有登陆的话则提示“请先登陆”,若有已登陆QQ则弹出对应QQ号码的聊天窗口.

阿里旺旺也应用了该方法,注册表表内容如下:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\aliim]
@=""
"URL Protocol"=""

[HKEY_CLASSES_ROOT\aliim\Shell]

[HKEY_CLASSES_ROOT\aliim\Shell\Open]

[HKEY_CLASSES_ROOT\aliim\Shell\Open\Command]
@="D:\\Program Files\\AliWangWang\\wwcmd.exe %1"

aliim:sendmsg?uid=cntaobao发送者帐号&touid=cntaobao接收者帐号

转载于:https://www.cnblogs.com/cai9911/archive/2010/07/15/1778493.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值