c#调用 python3 程序

2018-09-25 11:02:21 +08:00
 angel725
private void button3_Click(object sender, EventArgs e)
{
Process p = new Process();
string path = @"H:\src\wel.py";
p.StartInfo.FileName = @"E:\Python\Python36\python.exe";
p.StartInfo.Arguments = path;
Console.WriteLine(path);
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
    p.Start();
初接触 c#,因为它方便,所以想用它做 GUI,调用 python 程序。

百度学习了下,有个用进程启动 python 的方法。

但为什么我的不能用呢?

点了按钮,什么反应都没有
1578 次点击
所在节点    问与答
3 条回复
ysc3839
2018-09-25 13:42:02 +08:00
RedirectStandardOutput 的问题?
xujinkai
2018-09-25 15:21:34 +08:00
你设置了 UseShellExecute 和 CreateNoWindow 当然是没反应的,当然是看不到窗口的
RedirectStandardOutput 以后,需要使用 p.OutputDataReceived += ... 来获取输出

MSDN https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process.outputdatareceived?redirectedfrom=MSDN&view=netframework-4.7.2
这是我写的 https://xujinkai.net/posts/csharp-use-process-run-command
angel725
2018-09-26 18:09:37 +08:00
wel.py 单独运行正常。但点了按钮,什么反应都没有

wel.py 里面作用是打开浏览器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/492288

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX