手把手教你C#简单实现获取本地登陆的QQ号

View Code
 1 namespace GetMyQQ
 2 {
 3     public partial class frm_GetQQ : Form
 4     {
 5 
 6         WebBrowser web = new WebBrowser();
 7         public frm_GetQQ()
 8         {
 9             InitializeComponent();
10             lvQQ.Columns.Add("昵称",100);  //首先在listview中添加两个标题列
11             lvQQ.Columns.Add("QQ号码",100);
12             lbshow.Text = "";
13             lvQQ.GridLines = true; //设置listview为显示网格线
14             lvQQ.View = View.Details;//设置显示方式
15         }
16 
17         private void btnGet_Click(object sender, EventArgs e)
18         {
19             lvQQ.Items.Clear();//初始化listview集合
20             web.Navigate("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加载这个地址,这是腾讯网自动登录,我们就是利用腾讯的自动检测来获取我们登录的QQ号
21             web.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebCompleted);           //给WebBrowserDocumentCompletedEventHandler这个委托注册一个方法,这个方法写在下面了     
22                
23         }
24 
25         /// <summary>
26         /// 实现委托的方法注意要和委托定义的一样哦
27         /// </summary>
28         /// <param name="sender"></param>
29         /// <param name="e"></param>
30         void WebCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
31         {
32             //为了保险起见 我们在这再次判断是否加载完成
33             if (web.ReadyState == WebBrowserReadyState.Complete && web.IsBusy == false)
34             {
35                 HtmlDocument doc = web.Document; //抓取网页
36                 HtmlElement hem = doc.GetElementById("list_uin");//这里就像js里面一样通过ID来查找对象
37                 while (doc == null || hem == null)  //网络操作总是伴随着一些不可预知的异常,所以在这以防万一对象为空,我们继续判断
38                 {
39                  
40                     Application.DoEvents();//如果为空,就转交控制权
41                 }
42                                
43                 for (int i = 0; i < hem.Children.Count; i++)
44                 {
45                     string innertext = hem.Children[i].InnerText.Trim(); //获取到昵称和QQ号,格式是这样的  昵称(qq号)
46                     string[] temps = innertext.Split(' '); //我们把昵称和(qq号)分离
47                     string name = temps[0]; //得到昵称
48                     string num = temps[1]; //得到QQ号
49                     num = num.Replace("(", "").Replace(")", ""); //因为这里我们得到的QQ号还是(qq号)带有括号,所以需要去掉括号
50                     ListViewItem item = new ListViewItem(); //创建Listviewitem对象
51                     item.Text = name;  //将昵称设置为文本
52                     item.SubItems.Add(num);//将QQ号添加进子项
53                     lvQQ.Items.Add(item);//最后将listviewitem对象添加进listview
54                 }
55                 lbshow.Text = "完成";//OK  搞定收工
56             }
57             else
58             {
59                 lbshow.Text = "网页错误。请重试";
60                
61             }
62         }
63 
64     }
65 
66       
67 }

原文地址及demo下载地址:http://www.qqruoshui.com/index.php/a-simple-implementation-of-c-to-obtain-the-local-login-qq/

转载于:https://www.cnblogs.com/BKxiang/archive/2013/04/22/3035714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值