c#中重定向windows控制台程序的输出信息

    技术2024-06-16  76

    这个问题来自论坛提问,答案如下.这只是一个简单的ipconfig命令.如果是复杂的,比如oracle的exp之类的命令,能在调用的时候显示出来,还是相当酷的.

    using System;using System.Windows.Forms;namespace WindowsApplication8...{    public partial class Form1 : Form    ...{        public Form1()        ...{            InitializeComponent();        }        delegate void dReadLine(string strLine);        private void excuteCommand(string strFile, string args, dReadLine onReadLine)        ...{            System.Diagnostics.Process p = new System.Diagnostics.Process();            p.StartInfo = new System.Diagnostics.ProcessStartInfo();            p.StartInfo.FileName = strFile;            p.StartInfo.Arguments = args;            p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;            p.StartInfo.RedirectStandardOutput = true;            p.StartInfo.UseShellExecute = false;            p.StartInfo.CreateNoWindow = true;            p.Start();            System.IO.StreamReader reader = p.StandardOutput;//截取输出流            string line = reader.ReadLine();//每次读取一行            while (!reader.EndOfStream)            ...{                onReadLine(line);                line = reader.ReadLine();            }            p.WaitForExit();        }        private void button1_Click(object sender, EventArgs e)        ...{            excuteCommand("ipconfig"""new dReadLine(PrintMessage));        }        private void PrintMessage(string strLine)        ...{            this.textBox1.Text += strLine + " ";        }    }}

    最新回复(0)