У меня есть пользовательская консольная команда, которая, если она выполняется в командной строке, просто отображает некоторый текст в командном окне (аналогично команде 'dir').
Я пытаюсь выполнить команду «myCommand» из службы Windows, и она всегда возвращает пустые строковые значения. Однако, если выполнить ту же команду в командной строке, результат отобразится в окне командной строки. Кроме того, если я запускаю приведенный ниже код в приложении Windows Form, он работает нормально, и я получаю те же данные, которые отображаются на экране команд, в строковую переменную.
Куда я иду не так? Почему код возвращает пустую строку, когда я выполняю ее из службы Windows, где она работает в приложении форм. Есть ли другой метод для захвата результата команды в строковую переменную в службе Windows? Пожалуйста, порекомендуйте. Спасибо.
System.Diagnostics.ProcessStartInfo procStartInfo =
new System.Diagnostics.ProcessStartInfo("cmd", "/c myCommand");
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
string result = proc.StandardOutput.ReadToEnd();