1、Process.Start()返回启动进程main函数的返回值
private void button1_Click(object sender, EventArgs e)
{
Process da = new Process();
da.StartInfo.FileName = "ConsoleApplication3.exe";
da.StartInfo.UseShellExecute = false;
da.StartInfo.RedirectStandardInput = true;
da.StartInfo.RedirectStandardOutput = true;
da.StartInfo.RedirectStandardError = true;
da.StartInfo.CreateNoWindow = true;
da.Start();
da.WaitForExit();
int nn = da.ExitCode;
da.Close();
//da.StandardInput.WriteLine("ping -n 1 192.168.0.1");
string strRst = nn.ToString();
MessageBox.Show(strRst);
}
2、Process.Start将启动进程的控制台输出重定向到textbox
private void button2_Click(object sender, EventArgs e)
{Process da = new Process();
da.StartInfo.FileName = "cmd.exe";
da.StartInfo.UseShellExecute = false;
da.StartInfo.RedirectStandardInput = true;
da.StartInfo.RedirectStandardOutput = true;
da.StartInfo.RedirectStandardError = true;
da.StartInfo.CreateNoWindow = true;
da.OutputDataReceived += da_OutputDataReceived;
da.Start();
da.BeginOutputReadLine();
da.StandardInput.WriteLine("ping -t 192.168.2.39");
//string strRst = da.StandardOutput.ReadToEnd();
//da.WaitForExit();
//Console.WriteLine("{0}", strRst);
}
void da_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
this.BeginInvoke(new Action(() => { textBox1.Text += "\r\n" + e.Data; }));
}