Třída Diagnostics.Process má vlastnosti StandartInput a StandartOutput pro vstup a výstup do konzole. Výstup je lepší číst asynchroně pomocí příkazu BeginOutputReadLine (společně s událostí OutputDataReceived).
static void Main(string[] args)
{
var startInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe");
//přesměrovat vstup a výstup
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
//spustit cmd.exe
var cmd = new System.Diagnostics.Process();
cmd.StartInfo = startInfo;
cmd.Start();
//získat StreamReader a StreamWriter pro výstup a vstup
cmd.BeginOutputReadLine();
cmd.OutputDataReceived+=new System.Diagnostics.DataReceivedEventHandler(cmd_OutputDataReceived);
var input = cmd.StandardInput;
//zadat vstup
input.WriteLine("help");
Console.ReadLine();
}
static void cmd_OutputDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
{
//číst výstup
Console.WriteLine("Output:\t" + e.Data);
}
|