ネットワーク帯域幅を見つけるために iperf-2.0.5-2-win32 ツールを使用しています。cmdプロンプトを開くコードをc#で記述し、iperfパラメーターを渡してサーバー側とクライアント側を開始しました。iperf-2.0.5-2-win32 exe は直接開かず、cmd プロンプトからのみ開く必要があります。現在、出力 (転送速度と帯域幅) は cmd プロンプト自体に表示されています。これらの出力をテキストボックスに表示したいのですが、StreamReader も試しました。しかし、それはnullを取ります。私もOutputDataReceived Eventを試しましたが、それもnullを取ります。ipconfig と ping のコードはほとんど見つかりませんでしたが、それらは iperf コードでは機能しませんでした。
button_click event(),
{
Process Client_proc = new Process();
ProcessStartInfo Client_command = new ProcessStartInfo("cmd.exe");
string ip = txtIP.Text;
Client_command.CreateNoWindow = true;
Client_command.WindowStyle = ProcessWindowStyle.Hidden;
Client_command.WorkingDirectory = @"E:\Iperf\RunEXE_Through_Application\iperf-2.0.5-2-win32";
Client_command.Arguments = "/c START iperf -c " + ip;
Client_proc.StartInfo = Client_command;
Client_command.RedirectStandardOutput = true;
Client_command.UseShellExecute = false;
Client_proc.OutputDataReceived += new DataReceivedEventHandler(Client_proc_OutputDataReceived);
Client_proc.Start();
Client_proc.BeginOutputReadLine();
Client_proc.WaitForExit();
}
void Client_proc_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (e.Data != null)
{
string newLine = e.Data.Trim() + Environment.NewLine;
MethodInvoker append = () => txtOutput.Text += newLine;
txtOutput.BeginInvoke(append);
}
}
Plzは私を助けてください.以前の応答は高く評価されていますありがとう