Команда CMD не работает в консоли - PullRequest
1 голос
/ 25 ноября 2011

У меня есть код, который запускает команду cmd в C #, которая очень хорошо работает в WinForm, но при запуске в консольном приложении она не работает.Я немного застрял в том, почему это так, я попытался добавить Windows.Forms в качестве ссылки и добавил using в код, но это тоже не сработало.Единственное, о чем я могу думать, это то, что, поскольку он работает как консоль, он не может запустить другое окно консоли поверх этого?

Любая помощь приветствуется.

ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process console = Process.Start(cmd);
console.StandardInput.WriteLine("command to run");

1 Ответ

1 голос
/ 25 ноября 2011

Следующий код выполнит любую консольную команду, которую вы пожелаете, и выведет текст консоли в текущем окне, все после while (true) будет таким же, как пример:

        ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
        cmd.RedirectStandardInput = true;
        cmd.UseShellExecute = false;
        cmd.CreateNoWindow = false;
        cmd.WindowStyle = ProcessWindowStyle.Normal;
        Process console = Process.Start(cmd);

        while(true)
            console.StandardInput.WriteLine("pause");

Если вы не хотите выводить консоль, установите для CreateNoWindow значение true. Также этот код работает внутри консольного приложения, использующего System.Diagnostics

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...