Surendra Reddy V Ответов: 1

Как прочитать вывод команды из существующего командного процесса с помощью C#


Дорогие все,

Мне нужно получить вывод командного окна, его уже существующий процесс, из этого процесса мне нужно прочитать вывод(Вывод командной строки) с помощью c#.

Примечание: Я не начинаю никакого процесса отсюда. Процесс уже выполнен в другом месте и должен проверить строку из командной строки.

Уважения
Сури

Что я уже пробовал:

Используя это, я получаю вывод, мне нужно без запуска процесса уже запущенный процесс должен получить выходные данные :

string command = "/c " + richTextBox2.Text;

           ProcessStartInfo procStartInfo = new ProcessStartInfo("CMD", command);

           Process proc = new Process();
           proc.StartInfo = procStartInfo;
          // proc.Start();
           procStartInfo.RedirectStandardOutput = true;
           procStartInfo.UseShellExecute = false;
           proc.OutputDataReceived += new DataReceivedEventHandler(proc_OutputDataReceived);
           proc.Start();
           proc.BeginOutputReadLine();
           proc.WaitForExit();



void proc_OutputDataReceived(object sender, DataReceivedEventArgs e)
       {
           if (e.Data != null)
           {
               string newLine = e.Data.Trim() + Environment.NewLine;
             //  MethodInvoker append = () => richTextBox1.Text += newLine;
               MethodInvoker append = () => richTextBox1.AppendText(newLine);
               richTextBox1.BeginInvoke(append);
           }
       }

[no name]

"Я не начинаю никакого процесса", конечно, похоже, что это так.
"Процесс уже выполнен в другом месте", что означает "другое место"? Другой метод? Другая программа? В другой стране? На другой планете?

Surendra Reddy V

Привет,

Diff palce означает, что мы не Начинаем процесс от процесса.Start (), вручную выполняемый процесс и необходимость чтения consoleoutput из того же.

Вам все ясно?

Спасибо
Сури

1 Ответов

Рейтинг:
1

#realJSOP

Ты не можешь этого сделать. Вы можете получить результат процесса только в том виде, в каком он происходит, из процесса, в котором он выполняется. Вы получаете это из переменной StandardOut. Читайте об этом здесь:

Процесс.Свойство StandardOutput (System.Диагностика)[^]


Surendra Reddy V

Привет Джон,

Спасибо за быстрый ответ.

Да, я знаю это, время выполнения процесса только мы можем читать вывод с консоли.

Есть ли какой-либо другой способ для существующих процессов consoleoutput read для того, что я упомянул.