2010-09-15 66 views
1

我有一個用c#編寫的控制檯應用程序,它開始一個新的進程。這個新的過程也是一個控制檯應用程序。問題是整個子進程輸出到父控制檯窗口,我不希望它。不管它是否創建一個新的控制檯窗口,我都不需要它。不同輸出產卵控制檯子進程

編輯:

Process p = new Process(); 
p.StartInfo.FileName = @"C:\example.exe"; 
p.Start(); 

我試着像CreateNoWindow,RedirectOutput一些額外的設置等,但沒有運氣

+0

您使用什麼代碼啓動第二個控制檯應用程序? – Nate 2010-09-15 14:27:35

+0

如果您創建一個新的'MemoryStream'並對內存流執行「RedirectOutput」操作?這樣你有輸出,但它*不應該*轉到原始控制檯窗口的屏幕上。 – Nate 2010-09-15 14:35:42

+0

你能展示你的子進程配置和啓動的代碼嗎?通常會彈出一個新的控制檯窗口,子進程的所有輸出都會在該窗口中結束。 – 2010-09-15 14:35:57

回答

0

通常情況下,當你創建一個子進程,一個新的控制檯窗口彈出,所有子進程的輸出結束於該窗口。下面是一個示例程序,展示此行爲:

using System; 
using System.Diagnostics; 
using System.IO; 
using System.Reflection; 

static class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("TEST"); 

     if (args.Length == 0) 
     { 
      string path = Assembly.GetExecutingAssembly().Location; 
      Process.Start(path, "DontStartProcess"); 
     } 
     Console.ReadLine(); 
    } 
}