- namespace 修复网络连接
- {
- public partial class form1 : Form
- {
- DateTime ds;
- int timescan;
- System.Diagnostics.Process p = new System.Diagnostics.Process();
- public form1()
- {
- InitializeComponent();
- }
- private void renew_Click(object sender, EventArgs e)
- {
- initial_timer();
- }
- public void rebuild_con()
- {
- //p = new System.Diagnostics.Process();
- p.StartInfo.FileName = "cmd.exe";
- //p.StartInfo.FileName = "f:\\\\\\\\test.bat";
- p.StartInfo.UseShellExecute = false;
- p.StartInfo.RedirectStandardInput = true;
- p.StartInfo.RedirectStandardOutput = true;
- p.StartInfo.CreateNoWindow = true;
- p.Start();
- p.StandardInput.WriteLine("ipconfig /release");
- p.StandardInput.WriteLine("ipconfig /renew");
- p.StandardInput.WriteLine("arp -d*");
- p.StandardInput.WriteLine("nbtstat -r");
- p.StandardInput.WriteLine("nbtstat -rr");
- p.StandardInput.WriteLine("ipconfig/ flushdns");
- //MessageBox.Show(p.StandardOutput.ReadToEnd().ToString());
- }
- public string NetStatus()
- {
- ManagementObjectCollection objects;
- string status = "";
- ManagementObjectSearcher searcher = new ManagementObjectSearcher();
- searcher.Query.QueryString = "Select * From Win32_NetworkAdapter ";
- objects = searcher.Get();
- foreach (ManagementObject obj in objects)
- {
- foreach (PropertyData p in obj.Properties)
- {
- if (p.Name.Equals("NetConnectionStatus"))
- {
- if (p.Value != null)
- {
- status = p.Value.ToString();
- }
- }
- }
- }
- switch (status)
- {
- case "0":
- return "Disconnected";
- case "1":
- return "Connecting ...";
- case "2":
- return "Connected";
- case "3":
- return "Disconnecting ...";
- case "4":
- return "Hardware not present";
- case "5":
- return "Hardware disabled";
- case "6":
- return "Hardware malfunction";
- case "7":
- return "Media disconnected";
- case "8":
- return "Authenticating";
- case "9":
- return "Authentication succeeded";
- case "10":
- return "Authentication failed";
- default:
- return "";
- }
- }
- private void timer1_Tick(object sender, EventArgs e)
- {
- rebuild_con();
- richTextBox1.Text += "第" + (++timescan).ToString() + "次修复......";
- if (timescan % 5 == 0)
- {
- richTextBox1.Text += "\\\\n";
- }
- string sta = NetStatus();
- while (sta == "Connected")
- {
- stp_exe();
- richTextBox1.Text += " \\\\n修复成功!" + "\\\\n已停止修复!";
- break;
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- stp_exe();
- }
- private void timer2_Tick(object sender, EventArgs e)
- {
- int xv = progressBar1.Value == progressBar1.Maximum ? progressBar1.Value = 0 : progressBar1.Value++;
- }
- public void stp_exe()
- {
- timer1.Stop();
- timer2.Stop();
- progressBar1.Visible = false;
- label2.Visible = false;
- }
- public void initial_timer()
- {
- try
- {
- int j = int.Parse(textBox1.Text) * 1000;
- if (j < 5000)
- {
- MessageBox.Show("时间间隔过短,数值不得小于5秒!");
- return;
- }
- timer1.Interval = j;
- }
- catch (Exception ex)
- {
- MessageBox.Show("请输入数字类型字符!" + ex.ToString().Remove(60) + "......");
- return;
- }
- timer2.Interval = 500;
- timer1.Start();
- timer2.Start();
- progressBar1.Minimum = 0;
- progressBar1.Maximum = 20;
- progressBar1.Visible = true;
- label2.Visible = true;
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/150120131638.html
来源: http://www.codesnippet.cn/detail/150120131638.html