Запустите C # exe с параметрами, чтобы запустить другое приложение и получить вывод из консоли - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть exe-файл, в котором есть некоторые параметры пути другого приложения и несколько файлов, которые нужно открыть из этого приложения.Там будет вывод как часть этого приложения, которое будет отображаться в консоли моего exe.Но я не могу получить вывод с консоли.У меня есть код:

ProcessStartInfo psi = new ProcessStartInfo("\"" + dllpath + "\\newapplication.exe" + "\"");
Process p = new Process();
psi.UseShellExecute = false;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
p.Start();

Процесс начинается успешно, а затем я должен открыть файл в процессе, который происходит через другой класс.Поэтому после открытия файла происходит некоторая экстракция, и результат отображается на консоли.Когда я даю p.WaitForExit();, ничего не происходит, кроме запуска приложения!Как мне добиться получения вывода на StandardOutput в соответствии с моим кодом?Нужна помощь!

1 Ответ

0 голосов
/ 18 сентября 2018

Это правильный способ сделать это:

string outputProcess = "";
string errorProcess = "";

using (Process process = new Process())
{
    process.StartInfo.FileName = path;
    process.StartInfo.Arguments = arguments;
    process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardError = true;
    process.Start();
    outputProcess = process.StandardOutput.ReadToEnd();
    errorProcess = process.StandardError.ReadToEnd();
    process.WaitForExit();
}

Не забудьте использовать оператор using, когда у вас есть IDisposable объект

...