WPF检查系统上是否安装了python

时间:2014-03-27 16:46:35

标签: c# python wpf cmd

我的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黑色窗口瞬间出现,这是非常不受欢迎的。有没有解决方法来实现这个或修复以避免窗口的外观?

2 个答案:

答案 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);
            }
        }