WPF Listbox не добавляет всю строку - PullRequest
0 голосов
/ 04 августа 2020

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

for (int i = 0; i < amount; i++)
{
 System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
 string strCommand = "cmd.exe";
 string strCommandParameters = Parameters;
 pProcess.StartInfo.FileName = strCommand;
 pProcess.StartInfo.Arguments = strCommandParameters;
 pProcess.StartInfo.UseShellExecute = false;
 pProcess.StartInfo.CreateNoWindow = true;
 pProcess.StartInfo.RedirectStandardOutput = true;
 pProcess.Start();

 string strOutput = pProcess.StandardOutput.ReadToEnd();

 LBresponse.Items.Add(strOutput);
 Console.WriteLine(strOutput);

 pProcess.WaitForExit();
}

Когда я распечатываю результаты с помощью Console.WriteLine(strOutput);, я получаю эти 3 строки out.

Произошла системная ошибка 5.

Доступ запрещен

Запрос обрабатывается ** **

Но когда я пытаюсь добавить строку в список с помощью LBresponse.Items.Add(strOutput);, добавляется только последняя строка. Первые два немного более важны, чем последний.

Думаю, проблема в l oop, но я не знаю, как это исправить.

1 Ответ

0 голосов
/ 04 августа 2020

Проблема заключалась в том, что

pProcess.StartInfo.RedirectStandardOutput = true;
string strOutput = pProcess.StandardOutput.ReadToEnd();

необходимо заменить на

pProcess.StartInfo.RedirectStandardError = true;
string strOutput = pProcess.StandardError.ReadToEnd();

, чтобы получить первые две строки.

ReadLine распечатает первую линия.

...