0){handlerAbc(null,null);return;}//模拟点击"最近访客"varaa=pagediv.Parent.Parent.FirstChild.Children[2];aa.InvokeMember("click");//给访问列表的容器绑定一个事件...回调时就能获取到.HtmlElementguestlist=pagediv.Parent.FirstChild;//ul.RaiseEventguestlist.AttachEventHandler("onpropertychange",newEventHandler(handlerAbc));}privatevoidhandlerAbc(Objectsender,EventArgse){HtmlElementdiv=wb1.Document.GetElementById("visitor_list_page_con");HtmlElementguestlist=div.Parent.FirstChild;if(guestlist.InnerHtml.IndexOf("QZONE.FrontPage.showLoginBox")>-1){HtmlElementalogin=guestlist.GetElementsByTagName("a")[0];alogin.InvokeMember("click");//使用定时器.检测登录窗口的出现..terAutologin.Start();return;}else{System.Text.StringBuildersb=newStringBuilder();//取回里面的内容?foreach(HtmlElementliinguestlist.Children){stringqq=li.GetAttribute("uin");stringvisitname=li.Children[1].FirstChild.InnerText;stringvisittime=li.Children[1].Children[1].InnerText;sb.AppendLine(qqvisitnamevisittime);}MessageBox.Show(sb.ToString());}}}}-IMDN开发者社群-imdn.cn"> 0){handlerAbc(null,null);return;}//模拟点击"最近访客"varaa=pagediv.Parent.Parent.FirstChild.Children[2];aa.InvokeMember("click");//给访问列表的容器绑定一个事件...回调时就能获取到.HtmlElementguestlist=pagediv.Parent.FirstChild;//ul.RaiseEventguestlist.AttachEventHandler("onpropertychange",newEventHandler(handlerAbc));}privatevoidhandlerAbc(Objectsender,EventArgse){HtmlElementdiv=wb1.Document.GetElementById("visitor_list_page_con");HtmlElementguestlist=div.Parent.FirstChild;if(guestlist.InnerHtml.IndexOf("QZONE.FrontPage.showLoginBox")>-1){HtmlElementalogin=guestlist.GetElementsByTagName("a")[0];alogin.InvokeMember("click");//使用定时器.检测登录窗口的出现..terAutologin.Start();return;}else{System.Text.StringBuildersb=newStringBuilder();//取回里面的内容?foreach(HtmlElementliinguestlist.Children){stringqq=li.GetAttribute("uin");stringvisitname=li.Children[1].FirstChild.InnerText;stringvisittime=li.Children[1].Children[1].InnerText;sb.AppendLine(qqvisitnamevisittime);}MessageBox.Show(sb.ToString());}}}} - IMDN开发者社群-imdn.cn">
登录
首页 » C# » 自动登录qq空间,获取最近访客列表.

自动登录qq空间,获取最近访客列表.

于 2014-04-18 发布
0 251
下载积分: 1 下载次数: 0

代码说明:

自动登录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()); } } }}

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 生成8位密码程序
    无参考意义
    2013-12-09下载
    积分:1
  • C# 条码生成程序 源码下载
    打印
    2014-10-22下载
    积分:1
  • VIP会员管理系统源码(于sqlite数据库)
    【实例简介】 会员管理和统计,基于sqlite数据库开发,所以无需本地安装数据库
    2021-06-12 00:31:16下载
    积分:1
  • C++ 使用记录集对象的AddNew方法添加记录(提高篇-实例261).zip
    C++ 使用记录集对象的AddNew方法添加记录(提高篇-实例261).zip
    2019-10-02下载
    积分:1
  • C#实现环形缓冲区实例
    因个人需求,需要测试串口数据,直接拿去应用就可以了,经历半个月的压力测试,都没问题, *组件功能:利用环形缓冲区的特点实现对接收到的数据环形缓冲进行缓冲, *进而减少应用程序对数据解析的压力,同时通过组件里面封装的读取缓冲 *区的数据的函数,来读取缓冲区完整的一帧数据,从而减少或是避免数据 *包的丢失的情况的发生,同时也减少了工程师重复编写数据解析方法的重,
    2019-10-24下载
    积分:1
  • 飞机大战源码
    【实例简介】飞机大战源码  刚开始学习c#,从网上下载了个飞机大战游戏。研究后做了许多改进。各种对象都继承了接口。规范了了继承结构。应用了C#中类的思想。代码易读性提高。
    2022-01-11 00:31:19下载
    积分:1
  • C# 树状 组织结构图 类似直销组织 源码
    C# 树状 组织结构图 类似直销组织 源码
    2013-10-03下载
    积分:1
  • Log4net 常用类Logger 示例源码
    Log4net 常用类Logger 示例源码
    2014-10-16下载
    积分:1
  • 利用c#写的jpg拼图软件,可以随意剪切和拼接(钩子源码)
    利用c#写的jpg拼图软件,可以随意剪切和拼接using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;using System.Runtime.InteropServices;namespace AutoDrawRect{ public class MouseHook { //好吧这个没有用到 private bool isSet; public bool IsSet { get { return isSet; } } //这个也没有用到 private int handleOfHook; public int HandleOfHook { get { return handleOfHook; } } //这个还是没有用到、、、淡定! private bool isStopMsg; public bool IsStopMsg { get { return isStopMsg; } set { isStopMsg = value; } } //自己定义了一个事件 放到Hook里面去 public delegate void MEventhandler(object sender, MouseInfoEventArys e); public event MEventhandler HooKMouseEvent; [DllImport("user32.dll")]//设置钩子 第二个参数为回调函数指针 public static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hmod, int dwThreadid); [DllImport("user32.dll")]//传递到下一个钩子 public static extern int CallNextHookEx(int hHook, int nCode, IntPtr wParam, IntPtr lParam); [DllImport("user32.dll")]//卸载钩子 public static extern bool UnhookWindowsHookEx(int hHook); [DllImport("kernel32.dll")]//获取模块句柄 public static extern IntPtr GetModuleHandle(string lpModuleName); public const int WH_MOUSE_LL = 14;//全局鼠标Hook 7是局部的 13全局键盘 2局部键盘 public delegate int HookProc(int nCode, IntPtr wParam, IntPtr lParam);//话说c#里面委托就是函数指针?、 private const int WM_LBUTTONDOWN = 0x201; //在Hook里面判断是否左键点下 private const int WM_RBUTTONUP = 0x205; //在Hook里面判断是否右键抬起 public struct POINT {//鼠标位置的结构体 public int x; public int y; } public struct MouseLLInfo {//全局鼠标Hook的结构体 public POINT pt; //其实这里可以用Point只是这个新建的类里面没有应用System.Windows.Forms(应该是这个) public int mouseData; public int flags; public int time; public int dwExtraInfo; } GCHandle gc;//好吧 话说就是应为这个东西害得我研究了两天 没有这个的话 程序运行一会儿就提示崩溃了 //因为垃圾回收期把我的回调函数当垃圾收了 所以运行程序的时候 一会儿就提示我 一个垃圾的回调导致程序崩溃 //在非托管调用托管的时候 必须保持托管代码的或活动性 大概就这个意思 反正就是被收废品的收了、害的我用.net3.5用其他方式设置Hook public int MouseHookProcedure(int nCode, IntPtr wParam, IntPtr lParam) {//这个就是回调函数了 if (nCode >= 0 && HooKMouseEvent != null) {//先判断是否事件被绑定(感觉有点多余的判断 丫的我不在上面绑定 我写Hook干嘛) //话说是把内存的什么什么转换成结构体 MouseLLInfo mouseInfo = (MouseLLInfo)Marshal.PtrToStructure(lParam, typeof(MouseLLInfo)); Btn btn = Btn.None; //自己定义的一个枚举 里面只有三个值 if (wParam == (IntPtr)WM_LBUTTONDOWN) { //如果左键被点下 btn = Btn.LeftDowm; } else if (wParam == (IntPtr)WM_RBUTTONUP) { //如果右键被抬起 btn = Btn.RightUp; } //好吧 我就不知道当时我怎么想的 在Hook里面获取的坐标 有负数的现象 所以在那边 我没用这个坐标 MouseInfoEventArys e = new MouseInfoEventArys(btn, mouseInfo.pt.x, mouseInfo.pt.y); HooKMouseEvent(this, e);//触发绑定到这个上面的事件 } return CallNextHookEx(handleOfHook, nCode, wParam, lParam);//继续下一个钩子 } public bool SetMouseHook() { //设置Hook if (isSet) {//如果已经设置了 就不要设置啦、、、 return false; } HookProc MouseCallBack = new HookProc(MouseHookProcedure); handleOfHook = SetWindowsHookEx(WH_MOUSE_LL, MouseCallBack, GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0); if (handleOfHook != 0) {//如果设置成功、、 gc = GCHandle.Alloc(MouseCallBack);//这个就是那个什么什么、、然后我的回调就不会被收废品的拣去了 isSet = true; return true; } return false; } public bool UnLoadMouseHook() { if (!isSet) {//如果装都没有装那么久不要卸载啦、、 return false; } if (UnhookWindowsHookEx(handleOfHook)) { gc.Free();//将回调释放掉、、 isSet = false; return true; } return false; } } public enum Btn//我只感觉到这三个有用、(应该是两个 左键点下 右键抬起) { LeftDowm, RightUp, None } public class MouseInfoEventArys {//话说定义事件的时候都是这么写的 所以我也弄一个内出来保存事件参数 private int x;//坐标 多余的后来才发现 鼠标慢慢贴近屏幕边缘的时候 3 2 1 0 -1 、、丫的 负数都出来了 public int X { get { return x; } } private int y;//坐标 public int Y { get { return y; } } private Btn mBtn; public Btn MBtn { get { return mBtn; }//鼠标的情况 } public MouseInfoEventArys(Btn btn,int x,int y) {//构造器 mBtn = btn; this.x = x; this.y = y; } }}
    2013-12-22下载
    积分:1
  • WPF 2D游戏第一集
    WPF 2D游戏第一集
    2015-06-26下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载