C#修复网络连接代码
2018-07-20 来源:open-open
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; } } }
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:C# 选择法排序演示
最新资讯
热门推荐