2012-12-07 59 views
-2

我想從一個名爲Testing.exe的程序中獲取輸出,並使用另一個程序將其打印出來。如何使用C#讀取其他程序的輸出?

Testing.exe的輸出如下。

打印數:7

打印數:7

的代碼如下:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Testing 
{ 
    class Program 
    { 
     static int printNumber(int numberToPrint) 
     { 
      numberToPrint = 7; 
      Console.WriteLine("Printing number: " + numberToPrint.ToString()); 
      return numberToPrint; 
     } 

     static void Main(string[] args) 
     { 
      int number = 5; 
      number = printNumber(number); 
      Console.WriteLine("Printing number: " + number.ToString()); 
      Console.ReadKey(); 
     } 
    } 
} 

據稱我可以使用流程類和RedirectStandardOutput,但是我不知道如何使用它們...

如何d o我輸出上面的內容,並從另一個應用程序打印出來?我正在嘗試從控制檯應用程序獲取輸入並將其放入另一個應用程序中。

我剛開始學習編程,所以我迷路了。

+0

你是正確的關於使用'RedirectStandardOutput'。你有什麼特別的問題?看看這個小例子。它應該幫助你:http://www.dotnetperls.com/redirectstandardoutput –

+0

僅供參考:而不是寫'Console.WriteLine(「打印號碼:」+ numberToPrint.ToString());'你可以把'Console.WriteLine 「打印號碼:{0}」,numberToPrint);'。 – JohnLBevan

+0

@KevinAnderson我試過了該網站上的程序,但是當我運行它時,用「Testing.exe」替換「C:\ 7za.exe」(請記住Testing.exe與RedirectStandardOutput位於同一目錄中程序)我只是得到一個空白的控制檯窗口。 Testing.exe的輸出未顯示。 – Fiona

回答

3
// Start the child process. 
Process p = new Process(); 
// Redirect the output stream of the child process. 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.FileName = "Write500Lines.exe"; 
p.Start(); 
// Do not wait for the child process to exit before 
// reading to the end of its redirected stream. 
// p.WaitForExit(); 
// Read the output stream first and then wait. 
string output = p.StandardOutput.ReadToEnd(); 
p.WaitForExit(); 

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx

相關問題