Petite précision tout d’abord, je developpe avec la beta de visual C# express.
J’aimerais recupperrer ce qu’un process que je lance devrait normalement afficher sur la sortie standard. J’ai codé un petit truc, mais je m’arrache les cheveux à essayer de trouver pourquoi je n’arrive à recupperrer que le debut de ce que renvoye le process.
// On désactive l'ouverture d'une fenetre de la console windows
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
// On redirige l'entrée standard
proc.StartInfo.RedirectStandardInput = true;
// On redirige la sortie standard
proc.StartInfo.RedirectStandardOutput = true;
// On définit la commande
proc.StartInfo.FileName = "cmd.exe";
// Démarrage de la commande
proc.Start();
//on lance le thread d'affichage de la sortie standard
sortie_standard = proc.StandardOutput;
AfficheSortieStandard();
[code] private void AfficheSortieStandard()
{
char buffer_lecture;
string string_lecture;
int i;
int j;
//on affiche ce que le process a renvoyé
while (sortie_standard.Peek() != -1)
{
buffer_lecture = new char[256];
string_lecture = « »;
sortie_standard.Read(buffer_lecture, 0, buffer_lecture.Length);
for (i = 0; i < buffer_lecture.Length; i++)
{
string_lecture = string_lecture + buffer_lecture[i];
}
richTextBox1.Text = richTextBox1.Text + string_lecture;
}
}[/code]
Le probleme c’est que ça me permet de recuperrer que
alors que normalement je devrais recuperrer
[quote]Microsoft Windows XP [version 5.1.2600]
© Copyright 1985-2001 Microsoft Corp.
C:\tralala>[/quote]
J’ai essayé avec des ReadLine en mettant dans la condition d’arret du while que le résultat du readline est nul mais ça fait une boucle infinie, ce qui est pas vraiment mieux.