您的位置:首页 > 其它

关于腾讯的Tencent://Message/协议

2013-05-18 19:21 204 查看
我们知道,很多网站的在线QQ客服是通过 Tencent://Message/协议实现的,类似的实现还有迅雷、快播...下载链接等。

那么这是什么原理呢?

经过一番google,博主发现:

微软官方说明:http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/pluggable/overview/appendix_a.asp

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。

更多参见:Registering an Application to a URL Protocol。

附:原文

程序代码:

A protocol is a method that is used to send, receive, and handle information over a connection. Common protocols viewed from the browser include http, ftp, and mailto. In order for you to view information sent over a specific protocol, it must be registered.
Once registered, the protocol can then be handled by the program you specify, such as your browser or a 3rd party viewer. This means that a hyperlink ( e.g. foo://fred ) can use the handler for protocol foo to open the file named fred.

Contents [hide]

1 Registering an unsupported protocol

1.1 Windows

1.2 Linux

1.3 OS X

2 Redirecting a registered protocol

[edit]Registering an unsupported protocol

Mozilla products utilize protocols defined internally, as well as those defined by the operating system. You can add the ability to use an unsupported protocol by registering it. The OS-specific method of doing this is described below.

[edit]Windows

Create the registry .reg file, replacing foo with your unregistered protocol, and the path with whatever handler program you want to run. Then merge it into the Windows registry.

REGEDIT4

[HKEY_CLASSES_ROOT\foo]

@="URL:foo Protocol"

"URL Protocol"=""

[HKEY_CLASSES_ROOT\foo\shell]

[HKEY_CLASSES_ROOT\foo\shell\open]

[HKEY_CLASSES_ROOT\foo\shell\open\command]

@="\"C:\\Program Files\\Application\\program.exe\" \"%1\""

See Registering an Application to a URL Protocol for additional information.

[edit]Linux

Registration is unnecessary. Simply associate whatever proto: with a program through Firefox: Example: Add the sip: protocol to launch kphone for VoIP calls in Firefox:

- Type about:config into the address bar

- Right-click create new boolean value: network.protocol-handler.external.sip and set to true

- Right-click create new boolean value: network.protocol-handler.warn-external.sip and set to false

- Right-click create new string value: network.protocol-handler.app.sip

来源:http://www.wuxuxiao.com/news/newsview.html?id=126

参考:http://blog.csdn.net/dropme/article/details/761203
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: