在 C# 应用程序中,我运行了 python 控制台应用程序 exe 文件,并通过环境变量路径进行处理:
private void button1_Click(object sender, EventArgs e)
{
var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "folder\\python.exe");
Process.Start(filePath);
}
并且我想停止此过程并通过单击按钮或任何其他条件关闭控制台,不确定我做错了什么:
private void button2_Click(object sender, EventArgs e)
{
var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "folder\\python.exe");
var process = Process.Start(filePath);
process.Kill();
}
最佳答案
在第二次单击按钮时,您将启动一个新进程(并立即终止它),而不是停止第一次单击按钮时启动的进程。要停止从第一次单击按钮开始的进程,您需要将创建的 Process
对象存储在变量中,然后调用 Kill()
方法单击第二个按钮时在该对象上。
这是一个非常简单的示例(请注意,每次按下 button1
时,它都会将新创建的进程分配给 runningProcess
变量)
public class FormClass
{
Process runningProcess;
public FormClass()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "folder\\python.exe");
runningProcess = Process.Start(filePath);
}
private void button2_Click(object sender, EventArgs e)
{
if(!runningProcess.HasExited)
{
runningProcess.Kill();
}
}
}
关于c# - 如何从 C# 停止 Python 代码的 Process.Start 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41128319/