1. 程式人生 > >C#Process.Start獲取main函式返回值,以及控制檯輸出重定向到文字框

C#Process.Start獲取main函式返回值,以及控制檯輸出重定向到文字框

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; }));


        }