Обратиться к открытому процессу (process)

2438
12 февраля 2020, 21:10

Как обратиться к уже запущенному на компьютере процессу, прочитать линию или подать новую команду. Допустим на компьютере запущен Process.

        Process process = new Process();
        process.StartInfo.FileName = "cmd.exe";
        process.StartInfo.RedirectStandardInput = true;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.CreateNoWindow = true;
        process.StartInfo.WorkingDirectory = @"C:\[PathFolder]";
        process.StartInfo.Arguments = "/K index";            
        process.Start();
        process.StandardInput.WriteLine(@"Hello World!");
        string output = process.StandardOutput.ReadLine();

В этом месте все работает, и мы получаем строку. Мы можем так же подать следующею команду.

process.StandardInput.WriteLine(@"Hello World 2019!");

Но как допустим из акции контроллера прочитать строку или подать новую команду этому процессу. Первая строка правильно получает сам процесс и можно вывести его Id.

    public IActionResult Index()
    {      
        Process proc = Process.GetProcessesByName("index").FirstOrDefault();
        ViewData["Message"] = proc.Id;
        proc.StandardInput.WriteLine(@"Hello World!");
        ViewData["MessageTwo"] = proc.StandardOutput.ReadLine();
        return View();
    }

Но при попытки прочитать или передать. В моем случае получаем ошибку, в зависимости от операции.

StandardOut has not been redirected or the process hasn't started yet.

или

StandardIn has not been redirected.

Что сделано не так?

READ ALSO
Проблема с созданием Excel файла в C#

Проблема с созданием Excel файла в C#

Проблема заключается в следующем: Есть код (ниже показан), который выгружает данные из DataGridView2 в Excel, но в момент создания Excel файла (xlexcel = new MicrosoftOffice

46
Triangle.NET не триангулирет область с отверстием

Triangle.NET не триангулирет область с отверстием

При триангуляции поверхности с данными координатами дырки TriangleNet некоректно триангулирует область

36
Неправильно работают рикошеты

Неправильно работают рикошеты

Rigidbody2D стоит и у Bullet, и у StoneКоллайдеры тоже

61
Поиск кириллицы в MySQL (Eloquent)

Поиск кириллицы в MySQL (Eloquent)

Кириллица в базе данных хранится таким образом (пример): {"ru":"\u0418\u0441\u0442\u0440\u0430"}

39