Bonjour,

J'ai besoin de récpérer des donées émises par un programme sur la sortie standard :
par exemple j'execute en console monProg.exe param1 param2 ... et je souhaite récupérer la sortie standard.

actuellement je travaille comme cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 
Set oExec = objShell.Exec(toExec & "getpars.exe " & detPath & " /PLIVE")
outBuff = oExec.stdOut.ReadAll()
ce code fonctionne puisque je me retrouve avec ce que je veut dans outBuff.

mais j'aimerais savoir si il est possible d'utiliser quelque chose ressemblant a ce qui existe en dotNet ou en c# a savoir :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ProcessStartInfo.redirectStandardOutput
Le code .Exec ouvre un shell et une fenetre, ce que j'aimerais c'est que la commande s'execute sans ouvrir de nouvelle fenetre mais en utilisant autre chose. Parcequ'au bout d'un moment il y a trop de fenetres partout. J'ai cette commande a executer environ 40fois... En plus ca prend un temps fou de charger cmd.exe a chaque fois.

Une autre méthode consisterais a executer le programme et rediriger sa sortie standrard vers un fichier que l'on lit par la suite :

du stye maCommande.exe > data.txt
et ensuite ouvrir data.txt pour le lire. De cette facon en utilisant un .run("maCommande.exe > data.txt",0,True) ca pourrait peut etre marcher
mais je trouve ce code tres peu propore, se servir d'un fichier texte comme "variable" c dégeu

vous avez des idées ? en vb6

merci d'avance
diffy