En Visual Basic (pas "for Application" ), si je veux rediriger le flux de sortie d'un programme en ligne de commande, je suis obligé de passer par un Thread ? Même si le programme n'est pas interactif ?
Moi je voyais ça comme ça :
- Lancement du programme (avec les arguments qui vont bien)
- Le programme s'arrête
- Je lis et affiche le stdout du programme
Mais je n'y arrive pas
Code :
- Dim processJava As New Diagnostics.Process
- processJava.StartInfo.FileName = "java.exe"
- processJava.StartInfo.WindowStyle = ProcessWindowStyle.Normal
- processJava.StartInfo.UseShellExecute = False ' On désactive le shell : requis pour la redirection
- processJava.StartInfo.CreateNoWindow = True
- processJava.StartInfo.RedirectStandardOutput = True ' On redirige la sortie standard
- processJava.StartInfo.Arguments = "MaClassJava -h"
- processJava.Start()
- Dim SR As System.IO.StreamReader = processJava.StandardOutput
- MsgBox(SR.ReadToEnd())
- SR.Close()
- processJava.Close()
|
Merci