0
我正在寫一個與國際象棋引擎交流的小型控制檯應用程序。我正在設置流程類,我可以設置輸入,但我無法捕獲輸出。有了這個啓動參數startInfo.RedirectStandardInput = true; startInfo.RedirectStandardOutput = false;
輸入是可能的。當我設置startInfo.RedirectStandardOutput = true;
時,只有空的控制檯窗口正在啓動,無法輸入。我看到這個主題Catch console input-output,它被標記爲接受,但它不適合我。如何爲一個進程設置輸入和捕獲輸出?
現在我的計劃(我怎麼會在這裏可以閱讀輸出的最後一行):
var position = File.ReadAllText("C:\\pos.txt");
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = false;
startInfo.UseShellExecute = false;
startInfo.ErrorDialog = false;
startInfo.FileName = "C:\\engine.exe";
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.StandardInput.WriteLine("position startpos moves " + position);
process.StandardInput.WriteLine("go");
System.Threading.Thread.Sleep(500);
process.StandardInput.WriteLine("stop");
我想這之後,我得到'「System.InvalidOperationException」類型的未處理的異常出現在System.dll中 其他信息:StandardOut尚未被重定向或過程不是招」 ()線開始。 –
你應該將'startInfo.RedirectStandardOutput'設置爲true! – dotctor
您應該在downvoting之前閱讀我的問題,然後整個過程不會開始: –