Создание и управление процессом C#

Eсть у меня одна консольная программка (написана на C#), выполняющая роль сервера (далее просто сервер). В ней пользователь может выполнять определённые команды. Модифицировать я её не хочу, ибо разработчик регулярно выпускает важные обновления. Поэтому я и решил написать отдельную программу, которая будет выполнять некоторые действия и запускать сервер (не важно, в отдельном ли окне, или нет). Прошу хотя бы рассказать, что мне нужно сделать, что бы выполнить все пункты ниже.

Задачи

  1. Пользователь должен иметь полный доступ над запустившимся сервером: писать команды, видеть весь вывод и тд.
  2. Моя программа должна обрабатывать весь пользовательский ввод (команды) и выполнять свои действия. Например при написании команды "off", выключающая сервер - программа выполняет определенный код, ожидает завершение процесса сервера и выключается.
  3. Программа должна сама, при определенном условии, отправлять команду на сервер. Например выключать сервер не убийством процесса, а написанием всё той же команды "off".
  4. Выполнять действия при принудительном завершении сервера (после ошибки, например).

То, что уже есть

Я нашёл класс "Process", научился создавать процессы и на этом всё...

var info = new ProcessStartInfo()
                        {
                            FileName = path,
                            CreateNoWindow = false,
                            UseShellExecute = false,
                            RedirectStandardInput = true,
                            RedirectStandardOutput = true
                        };
var process = Process.Start(info);

Ответы (0 шт):