Estoy desarrollando una aplicación de Windows Forms que requiere que llame a un programa separado para realizar una tarea. El programa es una aplicación de consola y necesito redireccionar la salida estándar desde la consola a un TextBox en mi programa.Redirige la salida de la consola al cuadro de texto en el programa separado
No tengo problemas para ejecutar el programa desde mi aplicación, pero no sé cómo redirigir la salida a mi aplicación. Necesito capturar la salida mientras el programa se está ejecutando utilizando eventos.
El programa de la consola no debe detenerse hasta que se detenga la aplicación y el texto cambie constantemente a intervalos aleatorios. Lo que intento hacer es simplemente conectar la salida de la consola para activar un controlador de eventos que luego se puede usar para actualizar el TextBox.
Estoy usando C# para codificar el programa y usar el framework .NET para el desarrollo. La aplicación original no es un programa .NET.
EDITAR: Aquí hay un código de ejemplo de lo que intento hacer. En mi aplicación final, reemplazaré Console.WriteLine con código para actualizar el TextBox. Traté de establecer un punto de interrupción en mi controlador de eventos, y ni siquiera se alcanza.
void Method()
{
var p = new Process();
var path = @"C:\ConsoleApp.exe";
p.StartInfo.FileName = path;
p.StartInfo.UseShellExecute = false;
p.OutputDataReceived += p_OutputDataReceived;
p.Start();
}
static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(">>> {0}", e.Data);
}
¿Dónde está 'InputDataReceived'? –