我正在學習C#的一些有趣的事情,我正在嘗試製作一個Windows應用程序,它有一些GUI用於運行一些Python命令。基本上,我試圖教導自己運行一個進程併發送命令給它,以及從它接收命令的膽量。Shellexecute = false爲什麼打破這個?
我此刻的下面的代碼:
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "C:/Python31/python.exe";
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
textBox1.Text = output;
從命令提示符下運行python.exe給出了一些,我想捕捉和發送到Windows窗體的文本框的介紹性文字(textBox1的)。基本上,目標是讓東西看起來像從Windows應用程序運行的Python控制檯。當我沒有將UseShellExecute設置爲false時,會彈出一個控制檯並且一切正常;但是,當我將UseShellExecute設置爲false以重新引導輸入時,我所得到的只是一個控制檯很快彈出並再次關閉。
我在這裏做錯了什麼?
謝謝!我現在可以使用這種方法運行python腳本(加上@Chris Haas提供的一些鏈接,但似乎不可能從交互式python exe得到完整的輸出 – 2011-05-20 13:52:11
當您不使用ShellExecute ,所調用的API是'CreateProcess',並且已知不接受'/'作爲目錄分隔符。 – 2011-05-20 16:06:45