MONO / C # - перехватывать ввод во вновь запущенный процесс - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь запустить новый процесс, используя C # с Mono, и все еще могу записать ввод в этот новый процесс.

Например, допустим, у меня есть простая программа, которая ожидает ввода с клавиатуры. Как только он получен, он сам закрывается и сразу же перезапускается, используя следующий код:

var self = Assembly.GetExecutingAssembly().Location;

Console.WriteLine("Press a key to restart...");
Console.ReadKey();

Process p = new Process();
p.StartInfo.FileName = self;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = false;
p.StartInfo.RedirectStandardInput = false;
p.Start();

Thread.Sleep(500);
Environment.Exit(0);

И он делает это снова и снова.

Кроме того, я заблокирован после первого ввода. Однажды я запустил программу с помощью следующей команды:

mono dummy_program.exe

и я нажимаю любую клавишу, программа закрывается и перезагружается, но я «потерял» фокус на новом экземпляре программы. Невозможно отправить ему какой-либо вход.

Что не так с моим кодом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...