2010-08-16 651 views
7

我必須從Windows應用程序運行控制檯應用程序。控制檯應用程序,我想運行在我的應用程序嵌入的資源,和我打電話這樣說:即使在ProcessWindowStyle.Hidden之後,控制檯窗口仍然彈出;

// Run the updater and grab its output 
Process Updater = new Process(); 
Updater.StartInfo.FileName = "C:\\tmp\\tmp.exe"; 
Updater.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
Updater.StartInfo.UseShellExecute = false; 
Updater.StartInfo.RedirectStandardOutput = true; 
Updater.Start(); 
string UpdaterOutput = Updater.StandardOutput.ReadToEnd(); 
Updater.WaitForExit(); 

它提取的罰款,並運行良好,而且還抓住它的輸出完全沒問題...但是我仍然可以在運行時看到控制檯窗口快速打開。我知道彈出的控制檯來自此應用程序,因爲控制檯標題爲C:\tmp\tmp.exe。是否有任何完全失敗的證明方式來隱藏控制檯應用程序?我認爲使用ProcessWindowStyle.Hidden會做到這一點,但顯然不是。

謝謝。

+0

這個問題的答案,請關閉您的線程。 – 2010-08-16 23:38:23

+0

@Hans Passant - 如果我已經達到了當天的代表權限,我的答案可以被接受嗎? – fletcher 2010-08-16 23:46:31

+1

@fletch:當然,答案標記點上沒有上限。 – 2010-08-16 23:50:57

回答

16
+0

嗯,我曾經使用過,但是沒有想到當我使用'ProcessWindowStyle.Hidden'時它有什麼不同。我需要將它設置爲真,而不是假。 非常感謝! :) – Kratz 2010-08-16 22:33:31

+1

是的,這裏遲到了。我搞砸了,雙重否定... – fletcher 2010-08-16 22:34:06

+0

是這樣或者而不是? – barlop 2016-04-25 04:11:06

相關問題