日期:2014-05-18 浏览次数:20964 次
listView1.Items.Clear();//测试用的listview Process pro = new Process();//创建一个进程启动cmd pro.StartInfo.FileName = "cmd.exe"; pro.StartInfo.CreateNoWindow = true;//不要窗口 pro.StartInfo.UseShellExecute = false; pro.StartInfo.RedirectStandardInput = true; pro.StartInfo.RedirectStandardOutput = true; pro.StartInfo.Arguments = "/c netstat -ano";//好吧我也很想知道为什么要 /c 其实那个netstat -ano才是命令 pro.Start();//启动进程 listView1.View = View.Details;//设置listview的 不用管 listView1.FullRowSelect = true; listView1.Columns.Add("type"); listView1.Columns.Add("local"); listView1.Columns.Add("foreign"); listView1.Columns.Add("PID"); string line = null; while ((line = pro.StandardOutput.ReadLine()) != null) {//逐行读取命令行信息 int num = 0 ; string t = ""; for (int i = 0; i < line.Length; i++) { //好吧 淡定- -!、、不会正则 其实我这里实在去掉读取上来的信息的多余空格 if (line[i] == ' ') { if (i - num == 1) {//如果有两个相邻的空格就只留一个空格 num = i; continue; } num = i; } t += line[i]; } line = t.TrimStart();//左边的空格去掉 string[] temp = line.Split(' '); //tcp 和 80端口的弄上来 if (temp[0] == "TCP" && (temp[2].Split(':')[1] == "80") ){ ListViewItem item = new ListViewItem(line.Split(' ')[0]);//添加listview 的不用管 item.SubItems.Add(line.Split(' ')[1]); item.SubItems.Add(line.Split(' ')[2]); item.SubItems.Add(line.Split(' ')[4]); listView1.Items.Add(item); } try { if (temp[2] == "119.75.217.56:80") {//如果有百度的就灭掉 Process p = Process.GetProcessById(Convert.ToInt32(temp[4])); p.Kill();//灭掉灭掉、、、、、、 MessageBox.Show("kill..."); } } catch { } }