由Tencent://Message协议想到的一个解决方案

本文介绍了如何通过分析腾讯的Tencent://Message协议,实现从Web页面调用本地应用程序,如QQ。通过注册自定义协议并解析命令行参数,可以在浏览器中触发MFC Dialog或Winform程序,实现类似的功能。文中提供了源代码示例和注册表配置方法。
摘要由CSDN通过智能技术生成

源代码下载:http://files.cnblogs.com/phinecos/HelloWorldProtocal.rar

前天在BruceZhang 的一篇博文《求助:如何在ASP页面中调用Winform程序呢?》中回答了他提出的问题,但细想下觉得我的思路有误。

    今天在试用WebQQ的时候,无聊中想起很多人的博客上都有这样的小玩意,点击下就可以和博主进行对话,而且无需加博主为好友。

哎,这样的方式不就正好是BruceZhang那个问题的解决方案吗?那么腾讯是怎么做到在Web页面中调用QQ程序的呢?

先来看腾讯提供给我们的代码:

< href ="tencent://message/?uin=88888888&Site=JooIT.com&Menu=yes" >
< img  border ="0"  SRC ='http://is.qq.com/webpresence/images/status/01_online.gif'  alt ="点击这里给我发消息" >
</ a >

    很显然,奥妙就在“tencent://message/?uin=215555521&Site=JooIT.com&Menu=yes”这里,那这又到底是什么原理呢?

先扯开话题按自己的思路来想,要打开本地的QQ,肯定要分两步走,首先是定位到QQ,然后是传递给它一些参数,也就是“uin=215555521&Site=JooIT.com&Menu=yes”这样的东西。定位的话,借助注册表是最明显的方式了。可怎么把QQ跑起来呢?要我们自己去启动一个进程么?答案是否定的,Windows操作系统考虑了这一点,允许我们为自己的应用程序注册为一个协议处理者,具体参见MSDN上的文章《Registering an Application to a URL Protocol

腾讯的Tencent://Message协议注册表如下:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值