当前位置: 代码迷 >> 综合 >> C#Process.Start获取main函数返回值,以及控制台输出重定向到文本框
  详细解决方案

C#Process.Start获取main函数返回值,以及控制台输出重定向到文本框

热度:22   发布时间:2024-01-21 05:33:22.0

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


        }
  相关解决方案