/// <summary>
/// 获取正在使用网络的进程的Port和PID键对值
/// </summary>
/// <returns>key为Port,Vaule为PID</returns>
public List<KeyValuePair<string,string>> getPortPID()
{
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;
// 启动CMD
pro.Start();
// 运行端口检查命令
pro.StandardInput.WriteLine("netstat -ano");
pro.StandardInput.WriteLine("exit");
// 获取结果
string line = null;
List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>();
while ((line = pro.StandardOutput.ReadLine()) != null)
{
line = line.Trim();
if (line.StartsWith("TCP", StringComparison.OrdinalIgnoreCase))
{
line = Regex.Replace(line, "\\s{2,}", ",");
string[] arr = line.Split(',');
KeyValuePair<string, string> key = new KeyValuePair<string, string>(arr[1].Substring(arr[1].LastIndexOf(":") + 1, arr[1].Length - arr[1].LastIndexOf(":") - 1),arr[4]);
list.Add(key);
}
}
pro.Close();
return list;
}
主要是Process的StandardOutput属性及StartInfo的RedirectStandardOutput !
C# 运行命令行程序并获取运行结果!
最新推荐文章于 2024-07-31 17:16:21 发布