Есть ли способ запустить командный файл в приложении Windows Form в C #? - PullRequest
0 голосов
/ 20 июня 2011

Так или иначе, я работал над пакетной IDE, и мне было интересно, есть ли хороший способ эффективно вставить файл в форму.

Это будет работать как режим отладки, когда пользователь в любой момент может нажать кнопку, и пакетный файл загрузится в актуальную форму.

Как будто черное окно cmd будет встроено в форму ... Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 20 июня 2011
ProcessStartInfo psi = new ProcessStartInfo();
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
psi.FileName = "C:\\echo.cmd";
var p = Process.Start(psi);
Console.WriteLine(p.StandardOutput.ReadToEnd());

А в C:\echo.cmd у меня просто базовый echo hello!.Когда этот код будет выполнен - ​​вы увидите hello! полученный из выходного потока пакета.

Обратите внимание, что если выполненная команда будет ожидать некоторого ввода - ReadToEnd() не сможет вернуться.В этом случае вы должны использовать Process.OutputDataReceived событие.

0 голосов
/ 20 июня 2011

Посмотрите на объект процесса и потоки StandardInput, StandardOutput и StandardError.Это, по сути, все командное окно, отображаемое с некоторой специальной обработкой управляющих символов.

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