MinotMin 发表于 2012-12-18 18:55:26

C#QQ号批量注册(二)

<div id="cnblogs_post_body">http://pic002.cnblogs.com/images/2012/447721/2012092323434492.png
第二部:编写主窗体代码:
要实现自动保存,自动打开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;
using mshtml;
using System.Runtime.InteropServices;
using System.Threading;
using System.IO;
using System.Diagnostics;
namespace QQ号批量注册
{
    public partial class Form1 : Form
    {
      public const int INTERNET_CONNECTION_MODEM = 1;
      public const int INTERNET_CONNECTION_LAN = 2;
      
      public static extern bool InternetGetConnectedState(refint dwFlag, int dwReserved);
      public Form1()
      {
            InitializeComponent();
      }
      #region QQ申请页面资料提交处理
      private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
      {
            if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
            {
                for (int i = 1; i < 1; i++)
                {
                  if (webBrowser1.ReadyState== WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                  {
                        break;
                  }
                }
            }
            try
            {
                if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                {
                  webBrowser1.Document.GetElementById("nick").SetAttribute("value", "minot");
                  webBrowser1.Document.GetElementById("password").SetAttribute("value", "minotmin");
                  webBrowser1.Document.GetElementById("password").Focus();
                  webBrowser1.Document.GetElementById("password_again").SetAttribute("value", "minotmin");
                  webBrowser1.Document.GetElementById("year_value").Focus();
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{DOWN}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{DOWN}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{ENTER}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  webBrowser1.Document.GetElementById("month_value").Focus();
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{DOWN}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{DOWN}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{ENTER}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  webBrowser1.Document.GetElementById("day_value").Focus();
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{DOWN}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{DOWN}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                  SendKeys.SendWait("{ENTER}");
                  if (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.IsBusy == true)
                  {
                        for (int i = 1; i < 1; i++)
                        {
                            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                            {
                              break;
                            }
                        }
                  }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
      }
      #endregion
      #region 窗体加载
      private void Form1_Load(object sender, EventArgs e)
      {
            this.webBrowser1.Url=new Uri("http://zc.qq.com/chs/index.html");
      }
      #endregion
      #region 注册按钮,提交注册
      private void btnRegister_Click(object sender, EventArgs e)
      {
            register();
      }
      public void register()
      {
            System.Int32 dwFlag = new int();
            do{
                string register = webBrowser1.Document.Body.OuterHtml;
                if (register.Contains("我已阅读并同意相关服务条款"))
                {
                  webBrowser1.Document.GetElementById("submit").InvokeMember("click");
                }
                do
                {
                  if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && webBrowser1.IsBusy == false)
                  {
                        string htmlcode = webBrowser1.Document.Body.OuterHtml;
                        if (htmlcode.Contains("申请成功"))
                        {
                            this.qqNumber.Text = this.qqNumber.Text + "\n" + "QQ号:" + webBrowser1.Document.GetElementById("newUin").InnerText
                            + "注册时间" + DateTime.Now.ToString();//显示QQ号
                            saveFile();//保存到本地
                        }
                        else
                        {
                           // ADSLAgain();
                            MessageBox.Show("重新连接!");
                        }
                        break;
                  }
                } while (2 > 1);
            } while ((dwFlag & INTERNET_CONNECTION_MODEM) != 0);
            //this.webBrowser1.Url = new Uri("http://zc.qq.com/chs/index.html");
      }
      #endregion
      #region 只在当前窗口中打开,禁止ie打开
      private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
      {
            this.webBrowser1.Url = new Uri(((WebBrowser)sender).StatusText);
            e.Cancel = true;
      }
      #endregion
      #region QQ号的保存操作
      private void btnSave_Click(object sender, EventArgs e)
      {
            saveFile();
      }
      public void saveFile()
      {
            string filename = Application.StartupPath + @"\qq.txt";
            try
            {
                if (!File.Exists(filename))//判断文件是否存在
                {
                  FileStream fs1 = new FileStream(filename, FileMode.Create, FileAccess.Write);//创建写入文件
                  fs1.Close();
                }
                else
                {
                  ;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            try
            {
                StreamWriter writer = new StreamWriter(filename, true);
                //writer.WriteLine(qqNumber.Text + "\n");
                writer.WriteLine("\n" + "QQ号:" + webBrowser1.Document.GetElementById("newUin").InnerText
                + "注册时间:" + DateTime.Now.ToString() + "\n");
                writer.Close();
                MessageBox.Show("保存成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
      }
      #endregion
      #region 宽带重新连接
      private void btnADSLConnectAgain_Click(object sender, EventArgs e)      
      {
            ADSLAgain();
         // register();
      }
      #endregion
      public void ADSLAgain()
      {
            ADSLHelper adsl = new ADSLHelper();
            adsl.Disconnect("宽带连接");
            Thread.Sleep(3000);//停顿三秒
            adsl.Connect(this.txtADSLName.Text, this.txtADSLNumber.Text, this.txtADSLPwd.Text);
            //MessageBox.Show("宽带连接成功!");
      }//宽带重新连接
      private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
      {
            this.Dispose();
            Application.Exit();
      }
      private void 最大化ToolStripMenuItem_Click(object sender, EventArgs e)
      {
            this.WindowState = FormWindowState.Normal;
            this.notifyIcon1.Visible = true;
            this.Visible = true;
      }
      private void notifyIcon1_Click(object sender, EventArgs e)
      {
            this.WindowState = FormWindowState.Normal;
            this.notifyIcon1.Visible = true;
            this.Visible = true;
      }
      private void 官网ToolStripMenuItem_Click(object sender, EventArgs e)
      {
            System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
            myProcess.StartInfo.FileName = "iexplore.exe";
            myProcess.StartInfo.Arguments = " http://www.cn244.com/";
            myProcess.Start();
      }
      private void Form1_FormClosing(object sender, FormClosingEventArgs e)
      {
            if (MessageBox.Show("确实要退出本系统吗?", "系统提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                this.Dispose();
                Application.Exit();
                e.Cancel = false;
            }
            else
            {
                e.Cancel = true;//阻止退出系统
            }
      }
      private void btnRefresh_Click(object sender, EventArgs e)
      {
            this.webBrowser1.Url = new Uri("http://zc.qq.com/chs/index.html");
      }//刷新网页
      private void btnDisplay_Click(object sender, EventArgs e)
      {
this.qqNumber.Text = this.qqNumber.Text + "\n" + "QQ号:" + webBrowser1.Document.GetElementById("newUin").InnerText
+ "注册时间" + DateTime.Now.ToString();
      }
      #region 判断网络连接状态
      
      private void judgeADSL_Click(object sender, EventArgs e)
      {
            System.Int32 dwFlag = new int();
            if(!InternetGetConnectedState(ref dwFlag,   0))
            MessageBox.Show("未联网");
            if ((dwFlag & INTERNET_CONNECTION_MODEM) != 0)
                MessageBox.Show("采用调治解调器上网。");
            if((dwFlag   &   INTERNET_CONNECTION_LAN)!=0)
            MessageBox.Show("采用网卡上网。");
      }
      #endregion
      
    }
}
页: [1]
查看完整版本: C#QQ号批量注册(二)