使用Process
類與控制檯應用程序通信時遇到問題。無法向控制檯應用程序發送多個命令
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"consoleApp.exe";
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardInput = true;
Process = Process.Start(psi);
Process.BeginOutputReadLine();
我需要的是編寫命令到控制檯,檢索答案,迴應他們。但是,發送到控制檯的命令僅在關閉流時起作用:
Process.StandardInput.WriteLine("command");
Process.StandardInput.Close();
爲什麼會這樣?在此之後,當然,我無法再與控制檯應用進行通信。我究竟做錯了什麼?我通常如何與控制檯應用程序通信?任何幫助是極大的讚賞。
我試過了。它不起作用。我在某處讀到它只與輸出流有關。 – Peter17 2012-03-13 20:16:25
但我沒有完全可以完成的時刻。我需要不斷地與程序進行交流(這是一個外部SIP呼叫者)。 – Peter17 2012-03-13 20:19:00
我還沒有完全按照你的意思去做,但理論上它應該工作,並寫入標準輸入。 http://msdn.microsoft.com/en-us/library/system.io.streamwriter.flush.aspx例如,如果我們正在寫入文件流,調用flush將確保立即寫入緩衝區中的任何內容。 – mikey 2012-03-13 20:22:21