走过路过,近来看看,帮忙想想思路,一周内结贴

shadowfish 2005-05-08 10:38:33
不知道大家有没有用过腾讯QQ的网页服务功能,就是这样的,可以把这个地址复制到地址栏里面:
http://wpa.qq.com/msgrd?V=1&Uin=17042473&Site=在线咨询&Menu=yes

现象应该是打开了QQ的对话窗口,或者本地号码选择窗口(如果开了两个以上QQ),然后可以给17042473这个QQ对话或者留言

这个服务实现几个功能,1.判断是否安装QQ
2.判断安装QQ的版本
3.如果QQ已安装,但是没有启动QQ,则启动QQ
4.如果已经启动QQ,则打开对话窗口,直接和这个号码对话
5.启动两个以上QQ,弹出号码选择列表,选择后弹出对话窗口

各位路过的兄弟,讨论一下实现的思路
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongfa 2005-05-08
  • 打赏
  • 举报
回复

http://im.qq.com/js/checkqqclient.js
dongfa 2005-05-08
  • 打赏
  • 举报
回复
从你的链接可以得到这个文件:
checkqqclient.js


function IsInstallQQ(){

try{//支持
var xmlhttp=new ActiveXObject("TimwpDll.TimwpCheck");
return true;
}catch(e){//不支持

location.href='http://is.qq.com/webpresence/up_alarm.shtml';
//window.open('http://is.qq.com/webpresence/up_alarm.htm','','toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=no,copyhistory=no,width=410, height=410,top=0,left=0')
return false;
}
return false;
}

function IsInstallSupMiniQQ(){

try{//支持
var xmlhttp=new ActiveXObject("TimwpDll.TimwpCheck");
var n = xmlhttp.GetVersion();
if (n < 2.1)
{
location.href='http://is.qq.com/up_alarm.shtml';
return false;
}
return true;
}catch(e){//不支持

location.href='http://is.qq.com/up_alarm.shtml';
return false;
}
return false;
}
dongfa 2005-05-08
  • 打赏
  • 举报
回复
首先你的程序要支持自动化,会有一个clsid,然后在网页内通过其他clsid创建其自动化,如果不成功表明没有安装,如果成功就获得当前实例是否已经运行,如果没有实例运行就创建一个新实例.成功后调用其方法就可以弹出窗口了.
如果运行了多个QQ程序,则可以通过枚举ROT(Running Object Table),然后通过clsid过滤,通过调用实例的方法得到QQ号码,然后显示列表让用户选择.
shadowfish 2005-05-08
  • 打赏
  • 举报
回复
多谢 dongfa(一个红角好多年了~~~) 已经有思路了,回头仔细想想怎么实现,结贴先
shadowfish 2005-05-08
  • 打赏
  • 举报
回复
恩,check还是问题不大,问题是怎么打开客户端的窗口呢?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧