У меня есть * .exe с интерактивным текстовым командным интерфейсом, который я хочу автоматизировать с C#.
(1) - это результат C #, а (2) - это результат непосредственного использования * .exe. (последняя пропущена: «подключиться нормально!» и «загрузить успешно!»)
(1) подключиться нормально! обнаружение кабеля в порядке! загрузка успешно!
(2) кабель определен нормально!
Я не знаю, как сделать результат C # таким же, как (2), ниже мой код:
Process p = new Process();
p.StartInfo.FileName = ex.exe;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.StandardInput.WriteLine("prj_project open " + "...../bin/store//*****Water.ldf");
p.StandardInput.WriteLine("pgr_project open " + "...../bin/store/imp11/imp11.xcf");
p.StandardInput.WriteLine("pgr_program run");
p.StandardInput.WriteLine("exit");
p.WaitForExit();
var str = p.StandardOutput.ReadToEnd();
var str2 = p.StandardError.ReadToEnd();
Console.WriteLine(str);
Console.WriteLine(str2);
p.Close();
Почему-то я хочу замаскировать некоторые места, надеюсь, что это не вызовет путаницы.
Если вы можете помочь мне решить эту проблему, большое спасибо.
Это сводит меня с ума ... Мне потребовалось почти пятнадцать часов, чтобы решить ...