我的wpf应用程序调用python脚本生成输出,稍后将显示在UI中。如果在用户的系统上没有安装python,为了避免应用程序崩溃,我需要执行检查。目前我使用以下
实现了这一目标ProcessStartInfo start = new ProcessStartInfo();
start.FileName = @"cmd.exe"; // Specify exe name.
start.Arguments = "python --version";
start.UseShellExecute = false;
start.RedirectStandardError = true;
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardError)
{
string result = reader.ReadToEnd();
MessageBox.Show(result);
}
}
这可以完成这项任务,但会导致cmd黑色窗口瞬间出现,这是非常不受欢迎的。有没有解决方法来实现这个或修复以避免窗口的外观?
答案 0 :(得分:5)
或者,您可以在注册表中检查密钥HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
这可以说比仅仅尝试运行python.exe更可靠,因为Python安装程序并不总是更新PATH
变量。
答案 1 :(得分:0)
试试这个:
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = @"cmd.exe"; // Specify exe name.
start.Arguments = "python --version";
start.UseShellExecute = false;
start.RedirectStandardError = true;
start.CreateNoWindow = true;
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardError)
{
string result = reader.ReadToEnd();
MessageBox.Show(result);
}
}