C# でコマンドが完了した後、コマンド プロンプト ウィンドウの内容を取得しようとしています。
具体的には、この例では、ボタンのクリックから ping コマンドを発行しており、出力をテキスト ボックスに表示したいと考えています。
私が現在使用しているコードは次のとおりです。
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe");
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.Arguments = "ping 192.168.1.254";
Process pingIt = Process.Start(startInfo);
string errors = pingIt.StandardError.ReadToEnd();
string output = pingIt.StandardOutput.ReadToEnd();
txtLog.Text = "";
if (errors != "")
{
txtLog.Text = errors;
}
else
{
txtLog.Text = output;
}
そして、それはうまくいきます。少なくともいくつかの出力を取得して表示しますが、ping 自体は実行されません。または、少なくとも、以下の出力とコマンド プロンプト ウィンドウが一瞬点滅することを考えると、これが想定されます。
出力:
Microsoft Windows [バージョン 6.1.7601] Copyright (c) 2009 Microsoft Corporation. 全著作権所有。
C:\Checkout\PingUtility\PingUtility\bin\Debug>
どんな支援も大歓迎です。