0

这是我写的打开cmd,运行IPERF作为客户端的程序。连接服务器后,应该会显示网络的带宽。但是命令提示符关闭,我需要的信息仅在服务器端可用。

如何获取信息并将其显示在 MessageBox 中?

任何形式的帮助都非常感谢。

string output;
ProcessStartInfo start = new ProcessStartInfo(@"C:\Windows\System32\cmd.exe");
start.UseShellExecute = false;
start.ErrorDialog = false;
start.WindowStyle = ProcessWindowStyle.Normal;
start.RedirectStandardError = true;
start.RedirectStandardInput = true;
start.RedirectStandardOutput = true;
Process cmd = new Process();
cmd.StartInfo = start;
cmd.Start();
try
{
  Process.Start("cmd", "/C iperf -c " + IP_Address);
}
catch
{
}
Thread.Sleep(1000);
StreamReader outputReader = cmd.StandardOutput;
StreamReader errorReader = cmd.StandardError;         
output = outputReader.ReadToEnd();
MessageBox.Show( output );
4

1 回答 1

0

try { Process.Start("cmd", "/C iperf -c " + IP_Address); }

你试过“cmd /k”吗?它应该防止终端在您的参数完成后关闭。

try { Process.Start("cmd /k", "/C iperf -c " + IP_Address); }

于 2017-06-21T14:13:24.020 回答