コマンドラインプログラムを実行して結果を取得する。ここではnetstat -aを実行して結果を得るプログラム。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
private void button1_Click(object sender, EventArgs e) { ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = "netstat"; psi.Arguments = "-a"; psi.RedirectStandardOutput = true; psi.UseShellExecute = false; psi.CreateNoWindow = true; Process p = Process.Start(psi); string output = p.StandardOutput.ReadToEnd(); p.WaitForExit(); if (0 != p.ExitCode) { MessageBox.Show("error"); return; } textBox1.Text = output; } |
RedirectStandardOutput = trueすると結果を取得できる。
UseShellExecute = falseにすると、ShellExecuteExではなくCreapteProcessを使う。上記のような作業はパイプを使うのでCreateProcessじゃないと無理と思う。