2015-05-19 60 views
2

我正在使用VS13(Windows應用程序NOT控制檯應用程序)在C#中編寫嵌入式PowerShell主機。我可以調用powershell命令。我遇到的問題是,當invoke函數處理像ping,netstat等控制檯命令時,它會觸發要創建的conhost.exe實例。到目前爲止,對於Windows 7及以上版本,這是正常的行爲,但當主機啓動時,它會短暫地在屏幕上閃爍控制檯。啓動conhost.exe而無需控制檯窗口閃爍

有沒有一種方法可以讓conhost在不初始化的情況下啓動控制檯窗口?請記住,我正在處理用戶輸入到powershell管道中,以便測試每個命令,並開始一個新的過程可能不太實際。

+0

您是使用「Start-Process」cmdlet還是什麼?您可以使用「-NoNewWindow」,但這只是將輸出重定向到嵌入式主機。 – slashp

+0

不是powershell調用函數正在調用底層主機進程。這是問題所在。 – RG5

+0

你可以看看像ConEmu這樣的現有開源主機,http://conemu.github.io/en/Source.html。我可以從它的命令窗口中運行ping,而不會看到一個conhost,但是我也可以從Debug菜單中顯示「Real Console」。 – Eris

回答

0

自從我問這個問題已經有一段時間了,所以我想分享我想出的答案。基本上,由於我的嵌入式主機位於僅在後臺運行的應用程序中,因此在處理「本機命令」時無法防止屏幕上的主機閃爍。這只是Windows的工作方式。如果我的主機連接到一個GUI,那麼我認爲可能有重定向輸出的方式,但到目前爲止我的用例我無法抑制conhost。