[Mono/C#] Comment rediriger le output d'une commande vers un textview ?
Bonjour à tous!
Bonne vacances au étudiants :)
Bon, le coeur du problème...
J'écris une petite application qui aura comme but de piloter le programme wvdial qui fonctionne en mode console sous linux. Ce programme sert à la connection d'un modem basse vitesse.
Lorsqu'il est lancé en mode console beaucoup d'informations utiles sont affichés.
Je veux récupéré ces infos et les afficher dans un textview. Ce textview est en GTK# / mono...
Présentement, lorsque je lance mon application, elle se ferme de sitôt.
Voici mon code. J'ai remplacé le wvdial par un ping pour éviter le lancement du modem à toutes les fois...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
protected virtual void btnConnect_Click(object sender, System.EventArgs e)
{
// On désactive le shell
ProcWvdial.StartInfo.UseShellExecute = false;
// On redirige la sortie standard
ProcWvdial.StartInfo.RedirectStandardOutput = true;
ProcWvdial.StartInfo.FileName = "ping -c 3";
//ProcWvdial.StartInfo.FileName = "sudo /usr/bin/wvdial";
ProcWvdial.StartInfo.Arguments = "www.google.com";
// Démarrage de la commande
ProcWvdial.Start();
// Lecture de la sortie de la commande
string output = ProcWvdial.StandardOutput.ReadToEnd();
Gtk.TextBuffer buffer;
buffer = textview1.Buffer;
buffer.Text = output;
//Console.WriteLine(output);
// Attente de la fin de la commande
ProcWvdial.WaitForExit();
} |
J'ai repris le code de la FAQ :)
J'ai également un autre problème pour interrompre la connection ( ProcWvdial.Kill(); ) mais on verra plus tard...une chose à la fois :mouarf:
Merci de votre aide!
@+