Je développe une application Windows Forms qui nécessite que j'appelle un programme distinct pour effectuer une tâche. Le programme est une application console et j'ai besoin de rediriger la sortie standard de la console vers un TextBox dans mon programme.La sortie de la console de redirection vers la zone de texte dans un programme distinct
Je n'ai aucun problème à exécuter le programme depuis mon application, mais je ne sais pas comment rediriger la sortie vers mon application. J'ai besoin de capturer la sortie pendant que le programme fonctionne en utilisant des événements.
Le programme console n'est pas conçu pour s'arrêter de fonctionner tant que mon application ne s'arrête pas et que le texte change constamment à des intervalles aléatoires. Ce que je suis en train de faire est de simplement accrocher la sortie de la console pour déclencher un gestionnaire d'événements qui peut ensuite être utilisé pour mettre à jour le TextBox. J'utilise C# pour coder le programme et utiliser le framework .NET pour le développement. L'application d'origine n'est pas un programme .NET.
EDIT: Voici un exemple de code de ce que j'essaie de faire. Dans mon application finale, je remplacerai Console.WriteLine par du code pour mettre à jour le TextBox. J'ai essayé de définir un point d'arrêt dans mon gestionnaire d'événements, et il n'est même pas atteint.
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);
}
Où est 'InputDataReceived'? –