using DSkinTheme;
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace ConsoleApp2
{
public class Program
{
static void Main(string[] args)
{
Console.Write("请输入端口号:");
string port = Console.ReadLine();
Process pro = new Process();
pro.StartInfo.FileName = "cmd.exe";
pro.StartInfo.UseShellExecute = false;
pro.StartInfo.RedirectStandardInput = true;
pro.StartInfo.RedirectStandardOutput = true;
pro.StartInfo.RedirectStandardError = true;
pro.StartInfo.CreateNoWindow = true;
pro.Start();
pro.StandardInput.WriteLine("netstat -ano");
pro.StandardInput.WriteLine("exit");
Regex reg = new Regex(@"\s ", RegexOptions.Compiled);
string line = null;
while ((line = pro.StandardOutput.ReadLine()) != null)
{
line = line.Trim();
if (line.StartsWith("TCP", StringComparison.OrdinalIgnoreCase))
{
line = reg.Replace(line, ",");
string[] arr = line.Split('','');
if (arr[1].EndsWith(":" port))
{
Console.WriteLine("8002端口的进程ID:{0}", arr[4]);
new Program().KillProcess(Int32.Parse(arr[4]));
}
}
}
}
public void KillProcess(int processName)
{
try
{
Process thisproc = Process.GetProcessById(processName);
Console.WriteLine("进程名字为:" thisproc.ProcessName);
if (!thisproc.CloseMainWindow())
{
thisproc.Kill();
}
Console.WriteLine("进程 {0}关闭成功", processName);
}
catch
{
Console.WriteLine("结束进程{0}出错!", processName);
}
finally {
Console.ReadKey();
}
}
}
}