获取当前登录的QQ号码

  原理很简单:

  利用QQ空间的快速登录方式可以检测到在本机登录的QQ号码,通过分析这个快速登录页面可以获取到一个地址 

  http://xui.ptlogin2.qq.com/cgi-bin/qlogin?domain=qq.com&lang=2052&qtarget=1&jumpname=&appid=549000912&ptcss=undefined&param=u1%253Dhttp%25253A%25252F%25252Fqun.qzone.qq.com%25252Fgroup&css=&mibao_css=&s_url=http%253A%252F%252Fqun.qzone.qq.com%252Fgroup&low_login=0&style=12&authParamUrl=&needVip=1&ptui_version=10028

  再通过WebBrowser控件加载这个页面,等待网页加载完毕,分析html就可以提取出当前在本登录的所有QQ号码。

  代码:

using System;
using System.Windows.Forms;

namespace GetLoginQQDemo
{
    
    public partial class Form1 : Form
    {

        private string url = "http://xui.ptlogin2.qq.com/cgi-bin/qlogin?domain=qq.com&lang=2052&qtarget=1&jumpname=&appid=549000912&ptcss=undefined&param=u1%253Dhttp%25253A%25252F%25252Fqun.qzone.qq.com%25252Fgroup&css=&mibao_css=&s_url=http%253A%252F%252Fqun.qzone.qq.com%252Fgroup&low_login=0&style=12&authParamUrl=&needVip=1&ptui_version=10028";

        private WebBrowser web = new WebBrowser();
        public Form1()
        {
            InitializeComponent();

            lvwUins.Columns.Add("昵称", 100);
            lvwUins.Columns.Add("QQ号码", 100);
            
            web.Url = new Uri(url);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if(web.ReadyState != WebBrowserReadyState.Complete){
                MessageBox.Show("网页尚未加载完毕,请稍等.");
                return;
            }

            lvwUins.Items.Clear();

            HtmlDocument doc = web.Document;
            HtmlElement uinList = doc.GetElementById("list_uin");
            if(uinList != null){
                for (int i = 0; i < uinList.Children.Count; i++) {
                    string str = uinList.Children[i].InnerText.Trim();
                    
                    //分割昵称和QQ号码
                    string[] temp = str.Split(' ');
                    string nick = temp[0];
                    string uin = temp[1];
                
                    //去除括号
                    uin = uin.Replace("(", "").Replace(")", "");

                    ListViewItem item = new ListViewItem();
                    item.Text = nick;
                    item.SubItems.Add(uin);
                    lvwUins.Items.Add(item);
                }
            }
        }
    }
}

  运行截图:

  获取当前登录的QQ号码-风君雪科技博客

  源码:http://pan.baidu.com/share/link?shareid=474605&uk=1678089569