Как смоделировать «нажатие клавиши ввода» в процессе работы в фоновом режиме? - PullRequest
1 голос
/ 15 апреля 2019

В моем исполняемом экземпляре Process у меня есть пара Console.ReadLine строк. Как передать Enter key press (имитировать нажатие клавиши ввода пользователем) в Process.InputStream классе? Как ключ enter должен выглядеть во входной строке?

// in string input I want to have information, that "user" pressed enter key  
this.Process.StandardInput.Write(input);

Мой процесс работает на фоне, и я установил

this.Process.StartInfo.UseShellExecute = false;

флаг.

EDIT:

В моем exe файле есть такой код:

   for (int i = 0; i < 3; i++)
   {
       array[i] = Console.ReadLine();
   }

И я хочу имитировать нажатие клавиши ввода input string в моем Process.StandardInput.Write

1 Ответ

1 голос
/ 15 апреля 2019

Вы можете использовать WriteLine().

this.Process.StandardInput.WriteLine();

Или вы можете написать последовательность новой строки вручную.

this.Process.StandardInput.Write(this.Process.StandardInput.NewLine);

В любом случае установите AutoFlush в true

this.Process.StandardInput.AutoFlush = true;

или сброс вручную после того, как вы написали.

this.Process.StandardInput.Flush();

Если вы хотите отправить больше строк одновременно, просто отправьте больше новых строк сразу, перед любым текстом, который вы хотите.

this.Process.StandardInput.Write(  "a" + this.Process.StandardInput.NewLine
                                 + "b" + this.Process.StandardInput.NewLine);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...