不知道大家有没有用过腾讯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,弹出号码选择列表,选择后弹出对话窗口各位路过的兄弟,讨论一下实现的思路

解决方案 »

  1.   

    首先你的程序要支持自动化,会有一个clsid,然后在网页内通过其他clsid创建其自动化,如果不成功表明没有安装,如果成功就获得当前实例是否已经运行,如果没有实例运行就创建一个新实例.成功后调用其方法就可以弹出窗口了.
    如果运行了多个QQ程序,则可以通过枚举ROT(Running Object Table),然后通过clsid过滤,通过调用实例的方法得到QQ号码,然后显示列表让用户选择.
      

  2.   

    从你的链接可以得到这个文件:
    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;
    }
      

  3.   


    http://im.qq.com/js/checkqqclient.js
      

  4.   

    恩,check还是问题不大,问题是怎么打开客户端的窗口呢?
      

  5.   

    多谢 dongfa(一个红角好多年了~~~) 已经有思路了,回头仔细想想怎么实现,结贴先