Запись в cmd.exe?

День добрый! После долгих попыток борьбы с AllocConsole, FreeConsole и т.д. Увидел, что можно обойтись и вызовом cmd, не используя WinAPI.
public static Process CreateConsole()
        {
            ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
            cmd.RedirectStandardInput = true;
            cmd.RedirectStandardOutput = true;
            cmd.RedirectStandardError = true;
            cmd.UseShellExecute = false;
            cmd.CreateNoWindow = false;
            cmd.WindowStyle = ProcessWindowStyle.Normal;
            cmd.StandardOutputEncoding = Encoding.GetEncoding(866);
            Process console = Process.Start(cmd);
            return console;
        }
...
//пишу примерно так:
var console = CreateConsole();
var cin = console.StandardOutput;
var cout = console.StandardInput;
cout.Write("hello");

Но этот и подобные примеры не позволяют писать в консоль. Да, она появляется, но ничего записать через StreamWriter не могу.
  • Вопрос задан
  • 265 просмотров
Решения вопроса 1
Rou1997
@Rou1997
Вы не увидите ничего в консоли, у вас вывод перехвачен, если перехватить только ввод (RedirectStandardInput), то вот так сработает:
cout.Write("echo hello\n");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы