程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c#中重定向windows控制台程序的輸出信息

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

編輯:關於C語言

這個問題來自論壇提問,答案如下.這只是一個簡單的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 + " ";
    }
  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved