Redirection de la sortie d'une application console externe vers la listbox d'une winform

Description

En réponse à ma propre question ;)
(http://www.csharpfr.com/infomsg_PROCESS-AVEC-OUTPUT-DANS-TEXTBOX_985135.aspx)

Une application winform avec une listbox et 2 boutons (start et cancel).
Une application console qui écrit toutes les secondes une ligne.

La application winform lance l'application console, mais la console reste caché, et le texte affiché normalement dans la console est redirigé vers la listbox.

Source / Exemple :


this.myProcess = new Process();
this.myProcess.EnableRaisingEvents = true;
this.myProcess.Exited += new System.EventHandler(this.myProcess_Exited);
this.myProcess.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(this.myProcess_ErrorDataReceived);
this.myProcess.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(this.myProcess_OutputDataReceived);

this.myProcessStartInfo.RedirectStandardError = true;
this.myProcessStartInfo.RedirectStandardOutput = true;

this.myProcessStartInfo.UseShellExecute = false;
this.myProcessStartInfo.CreateNoWindow = true;

this.myProcess.Start();
this.myProcess.BeginErrorReadLine();
this.myProcess.BeginOutputReadLine();

Conclusion :


Pour lancer l'application Console, on utilise la class System.Diagnostics.Process
Des évènements sont gérés pour récupèrer la sortie de la console.

C'est du très vite fait, c'est juste pour donner UNE des solutions pour rediriger une application Console vers une application winform!

Keyser ;)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.