Как обратиться к уже запущенному на компьютере процессу, прочитать линию или подать новую команду. Допустим на компьютере запущен 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.
Что сделано не так?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Проблема заключается в следующем: Есть код (ниже показан), который выгружает данные из DataGridView2 в Excel, но в момент создания Excel файла (xlexcel = new MicrosoftOffice
При триангуляции поверхности с данными координатами дырки TriangleNet некоректно триангулирует область
Кириллица в базе данных хранится таким образом (пример): {"ru":"\u0418\u0441\u0442\u0440\u0430"}