资 源 简 介
自动登录qq空间,获取最近访客列表.using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1{ public partial class Form1 : Form { Timer terAutologin = new Timer(); public Form1() { InitializeComponent(); terAutologin.Enabled = true; terAutologin.Interval = 3 * 1000; terAutologin.Tick = ter_Tick; } void ter_Tick(object sender, EventArgs e) { if(wb1.Document==null) { return; } HtmlElement dialog_content_1 = wb1.Document.GetElementById("dialog_content_1"); if (dialog_content_1 == null) { return; } var frame = wb1.Document.Window.Frames[0]; if (frame==null) { return; } if (frame.Document==null) { return; } // iframe HtmlElement u = frame.Document.GetElementById("u"); u.InnerText = "171586098"; HtmlElement p = frame.Document.GetElementById("p"); p.InnerText = "*************"; p.SetAttribute("value", "********"); HtmlElement login_button = frame.Document.GetElementById("login_button"); login_button.InvokeMember("click"); terAutologin.Stop(); } private void Form1_Load(object sender, EventArgs e) { ssl1.Text = string.Empty; txtUrl.Text = "http://user.qzone.qq.com/14371939"; wb1.ScriptErrorsSuppressed = true; wb1.Navigate("http://user.qzone.qq.com/14371939/main"); } private void btnGO_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtUrl.Text)) { wb1.Navigate(txtUrl.Text); ssl1.Text = txtUrl.Text " Navigated"; } } private void wb1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { System.Diagnostics.Trace.WriteLine(e.Url.ToString()); // http://g.cnc.qzone.qq.com/cgi-bin/friendshow/cgi_get_visitor_simple?uin=4371939&type=1&mask=3&rd=0.7801240284461528&_=1397644130601&g_tk=9281770 ssl1.Text = e.Url.ToString() " Completed"; tryRead(); } private void btnTest_Click(object sender, EventArgs e) { tryRead(); } private void tryRead() { if (wb1.Document == null) { return; } HtmlElement pagediv = wb1.Document.GetElementById("visitor_list_page_con"); if (pagediv==null) { return; } //若分页内容存在,则表示已经加载过了. if(pagediv.Children.Count>0) { handlerAbc(null,null); return; } //模拟点击 "最近访客" var aa = pagediv.Parent.Parent.FirstChild.Children[2]; aa.InvokeMember("click"); //给访问列表的容器绑定一个事件...回调时就能获取到. HtmlElement guestlist = pagediv.Parent.FirstChild; //ul.RaiseEvent guestlist.AttachEventHandler("onpropertychange", new EventHandler(handlerAbc)); } private void handlerAbc(Object sender, EventArgs e) { HtmlElement div = wb1.Document.GetElementById("visitor_list_page_con"); HtmlElement guestlist = div.Parent.FirstChild; if (guestlist.InnerHtml.IndexOf("QZONE.FrontPage.showLoginBox") > -1) { HtmlElement alogin = guestlist.GetElementsByTagName("a")[0]; alogin.InvokeMember("click"); // 使用定时器.检测登录窗口的出现.. terAutologin.Start(); return; } else { System.Text.StringBuilder sb = new StringBuilder(); // 取回里面的内容? foreach (HtmlElement li in guestlist.Children) { string qq = li.GetAttribute("uin"); string visitname = li.Children[1].FirstChild.InnerText; string visittime = li.Children[1].Children[1].InnerText; sb.AppendLine(qq visitname visittime); } MessageBox.Show(sb.ToString()); } } }}