Мое приложение будет зависать, когда я пытаюсь что-то написать в proc.StandardInput.WriteLine ("Y") - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь выполнить команду из кода C #.Но когда я использовал proc.StandardInput.WriteLine ("Y"), мое приложение зависло.

Мой код ниже.

string command = "Моя команда после выполнения показывает некоторые выходные данные и требуетзапись пользователя ";

        System.Diagnostics.ProcessStartInfo procStartInfo =
            new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);

        // The following commands are needed to redirect the standard output.
        // This means that it will be redirected to the Process.StandardOutput StreamReader.
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.RedirectStandardInput = true;
        procStartInfo.UseShellExecute = false;
        // Do not create the black window.
        procStartInfo.CreateNoWindow = true;
        // Now we create a process, assign its ProcessStartInfo and start it
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.StartInfo = procStartInfo;
        proc.Start();


        string standard_output;
        while ((standard_output = proc.StandardOutput.ReadLine()) != null)
        {
            if (standard_output.Contains("Are you sure (Y/y or N/n ):"))
            {
                proc.StandardInput.WriteLine("Y");
                //do something
                break;
            }
        }

1 Ответ

0 голосов
/ 11 октября 2018
 while ((standard_output = proc.StandardOutput.ReadLine()) != null)
        {
            if (standard_output.Contains("Are you sure (Y/y or N/n ):"))
            {
                proc.StandardInput.WriteLine("Y");
               string myReturn= proc.StandardInput.ReadLine();
                break;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...