我希望在我的C#控制檯應用程序中嵌入一個exe文件(特別是Python 2.7的解釋器中的「python.exe」),這意味着我希望用戶輸入命令,將解釋器的輸出接收到字符串變量並使用Console。 WriteLine打印輸出。到目前爲止我的代碼是:在C#控制檯中嵌入一個exe文件?
ProcessStartInfo processStartInfo = new ProcessStartInfo("C:/Python27/python.exe");
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.UseShellExecute = false;
Process process = Process.Start(processStartInfo);
if (process != null)
{
while (true)
{
process.StandardInput.WriteLine(Console.ReadLine());
process.StandardInput.Close();
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
}
}
我可以寫「打印5」,並得到正確的輸出,但再次書寫時,我收到以下錯誤:
Cannot write to a closed TextWriter.
我認爲這個錯誤是因爲我關閉了StandardInput,但沒有這行代碼,我根本沒有得到任何輸出。我可以使用什麼發送多個命令到exe文件?
預先感謝您!
你可以調用process.StandardInput.Flush()而不是Close()嗎? – scottm 2012-07-23 20:13:25
你有沒有考慮過使用IronPython? – 2012-07-23 20:13:35
調用這個「嵌入」非常非正統。 :) – bzlm 2012-07-23 20:42:15