“有事QQ我!” 是怎么实现的?怎么实现类似的功能?<br>“有事QQ我!” 是怎么实现的?
“有事QQ我!”是怎么实现的?怎么实现类似的功能?
现在很多软件如QQ,alibaba的贸易通,都可以在网页上“启动”,还可以显示在线状态。这是怎么实现的?如何做出类似效果?
而且,他们的实现方式还似乎不一样:QQ是连接一个网址,我也不知道是不是通过CGI来处理的;
而alibaba的贸易通是通过javascript调用什么对象来判断进而实现的。……
想实现类似的功能,请高人指点。或者有更好的方式,谢谢赐教!
问题点数:100、回复次数:19Top
1 楼superdbs(*)回复于 2005-08-01 22:31:12 得分 0
没有人来,自己灌
刚才上了QQ网站看看(http://imis.qq.com/webpresence/help/help.shtml#04),他是这样说明的:
<a target=blank href=http://wpa.qq.com/msgrd?V=1&Uin=80000816&Exe=QQ&Site=im.qq.com&Menu=No>
<img border="0" SRC=http://wpa.qq.com/pa?p=1:80000816:1 alt="给我发消息"></a>
1、取状态图片接口:
接口样例:http://wpa.qq.com/pa?p=1:80000816:1
说明:Web网页中可引用此接口,来获得指定QQ用户的在线状态;该接口返回一张图片来表示用户当前的在线状态;目前,系统只支持“在线”和“离线”两种状态;
CGI URL:http://wpa.qq.com/pa?
参数:
P=以冒号“:”分隔多个参数
第一个参数为版本号,目前为1;
第二个为QQ/TM号码;
第三个参数为图像风格
2.发起临时会话接口:
接口样例:http://wpa.qq.com/msgrd?V=1&Uin=80000816&Exe=QQ&Site=im.qq.com&Menu=No
说明:浏览网站的用户可点击此链接,发起针对发布状态的用户的临时会话;
CGI URL:http://wpa.qq.com/msgrd? 参数
那就是说:点击这个链接,CGI来处理这个消息,QQ服务器就发送一个指令回到本地,打开本地QQ聊天窗口。但有一个问题:当QQ没有启动时,他是怎么来处理这个消息的?那个“QQ没有启动”的提示又是怎么生成的呢?
Top
2 楼CodeKey()回复于 2005-08-01 22:34:28 得分 8
是不是用的控件呢,
因为安装软件的时候就可以把这些东东注册了
然后在网页里调用就是了Top
3 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-08-01 22:53:29 得分 8
通过脚本调用程序Top
4 楼superdbs(*)回复于 2005-08-01 22:59:44 得分 0
谢谢
就是说通过网页调用本地的控件?Top
5 楼superdbs(*)回复于 2005-08-01 23:05:02 得分 0
那alibaba的贸易通是不是直接就判断有没有组件,然后决定做什么,他的这种处理方式比QQ好?简单点?
Top
6 楼yq3woaini(哈哈镜 选择好心情)回复于 2005-08-01 23:27:06 得分 50
这个分我要定了: 解答如下:
这是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\""
这是他的classid
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\TimwpDll.TimwpCheck]
@="TimwpDll.TimwpCheck"
[HKEY_CLASSES_ROOT\TimwpDll.TimwpCheck\CLSID]
@="{ED4CA2E5-0EEA-44C1-AD7E-74A07A7507A4}"
//阿里巴巴在注册表中写的信息如下:
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]
@="\"E:\\Program Files\\阿里巴巴\\贸易通\\AliTalk.exe\" %1"
你可以在地址栏中输入: Alitalk://message看一下效果就知道了
你在注册表中写入如下信息:
//yqyq
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\YQYQ]
"URL Protocol"="C:\\YQ.exe"
[HKEY_CLASSES_ROOT\YQYQ\shell]
[HKEY_CLASSES_ROOT\YQYQ\shell\open]
[HKEY_CLASSES_ROOT\YQYQ\shell\open\command]
@="\"C:\\YQ.exe\" \"%1\""
然后在地址栏中输入: yqyq://message
看一下效果 就知道了
具体原理 ,回头告诉你. 哈哈镜Top
7 楼horisly(SUN YAT-SEN UNIVERSITY (逸仙先生))回复于 2005-08-02 00:11:59 得分 8
markTop
8 楼WecanHuang(曾阿牛)回复于 2005-08-02 00:16:53 得分 8
upTop
9 楼superdbs(*)回复于 2005-08-02 11:57:43 得分 0
谢谢大家!
归纳一下问题就是:点击网页,判断有没有安装软件:有,启动执行;没有,打开网址。
有朋友有好的建议吗?Top
10 楼superdbs(*)回复于 2005-08-02 17:55:02 得分 0
upTop
11 楼superdbs(*)回复于 2005-08-02 20:49:51 得分 0
upTop
12 楼AntonlioX(做人要厚道)回复于 2005-08-02 21:36:36 得分 8
up
Top
13 楼yuanquande(醉公子)回复于 2005-08-02 21:36:53 得分 2
大家讨论什么啊,这就是QQ的在线状态功能,打开QQ的菜单就有,晕死。申请完,把HTML代码放到你要放的网页里就行了。Top
14 楼superdbs(*)回复于 2005-08-02 22:12:43 得分 0
不要晕死。你可以告诉我在哪里看他是怎么实现的吗?谢谢。
Top
15 楼superdbs(*)回复于 2005-08-03 13:43:35 得分 0
按照yq3woaini的方法,已经可以在网页中启动程序了。
接下来的工作就是
1、如何判断有没有安装软件
2、调用的程序以及调用的接口问题。
一步一步来,希望得到您的指导……
Top
16 楼superdbs(*)回复于 2005-08-03 19:11:26 得分 0
问题2已经解决。
在网页中,可以通过网页来调用:
<a href="test://message" >点这里</a>
关键点:
1. test是我们构造的协议,如同eMule的eD2k链接;
2. 调用格式:test:+[参数],注意,“test:”可不带参数,但必须完整。如:test:aaa:bbb:ccc
3. 程序通过命令行获得的参数为:“ “test:+[任意形式参数]” ”,你只需把它当字符串来操作。
现在只剩下一个问题了:如何在网页中判断有没有安装软件?
一向奉行知识分享,希望得到您的指导……
Top
17 楼iceqings(小西瓜)回复于 2005-08-03 19:13:45 得分 0
欢迎加入Visual C++ 开发 QQ群
群号:9643456Top
18 楼iceqings(小西瓜)回复于 2005-08-03 19:18:58 得分 8
欢迎加入Visual C++ 开发 QQ群
群号:9643456
有不能解决的问题吗,加入我们,让我们共同解决Top
19 楼superdbs(*)回复于 2005-08-05 22:41:01 得分 0
没事时想想,还是把问题解决了。很高兴的
有时间我给他整理下
结贴。
Top




