首页 > 解决方案 > c#: 使用进程开始倾斜到 Win32Exception 启动 appium 服务器

问题描述

所以我有这个开始的功能process

public class ProcessHandler
{
    private static Process process;
    private static ListenerHandler listenerHandler = new ListenerHandler();

    public static void Start(string fileName, string arguments)
    {
        process = new Process();
        process.StartInfo.FileName = fileName;
        if (arguments != "")
            process.StartInfo.Arguments = arguments;
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.CreateNoWindow = true;
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
        process.ErrorDataReceived += new DataReceivedEventHandler(OutputHandler);
        process.Start();
        process.BeginOutputReadLine();
        process.BeginErrorReadLine();
        process.WaitForExit();
    }

    private static void OutputHandler(object sender, DataReceivedEventArgs e)
    {
        if (e.Data != null)
            Console.WriteLine(e.Data);
    }

    private static void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
    {
        // Todo.
    }

    public static void Kill()
    {
        try
        {
            if (!process.HasExited)
                process.Kill();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, ex.GetType().ToString());
        }          
    }
}

并想使用它来启动appium服务器。在我machine想要启动的appium服务器中,我只需打开cmdwindows 类型appium并启动服务器。

因此,我尝试在此类示例中以这种方式使用它:

ProcessHandler.Start("appium", "");

并收到此错误(在 process.Start() 处):

System.ComponentModel.Win32Exception: '系统找不到指定的文件'

我用另一个例子检查了我的功能:

ProcessHandler.Start("notepad", @"C:\log.txt");

这很好用。

标签: c#processappium

解决方案


推荐阅读