Page 1 sur 1

[R] Lecture de la sortie standard d'un programme

Posté : jeu. 10 sept. 2009 17:20
par keltharak
Bonjour,

J'aimerai lire la sortie standard d'un programme que je n'ai pas lancé depuis mon script autoit mais à priori il faut forcement avoir lancé le programme par un Run pour avoir "la main" sur la sortie d'un programme avec StdoutRead().
Pour donner un petit exemple, je fais pour l'instant :
► Afficher le texte
Mais évidement ça ne retourne rien du tout.

Merci d'avance.

Re: [..] Lecture de la sortie standard d'un programme

Posté : jeu. 10 sept. 2009 17:56
par Tlem
En effectuant quelques recherches sur des messages récents comme http://www.autoitscript.fr/forum/viewto ... f=3&t=3661, vous trouverez sans doute votre bonheur.

Re: [..] Lecture de la sortie standard d'un programme

Posté : jeu. 10 sept. 2009 19:34
par keltharak
Merci pour l'aiguillage mais je ne suis pas tout à fait dans le même cas car je ne lance pas le programme à "lire" dans mon script. Le programme que j'ai appelé monProcess.exe est un processus qui tourne sur ma machine sans interaction avec mon script, j'aimerai juste savoir ou il en est.
Or dans l'es exemples donnés le programme sont lancé par un Run en redirigeant les sorties sur le script parent, ou alors je n'ai rien compris, ça reste dans le domaine du possible...

Re: [..] Lecture de la sortie standard d'un programme

Posté : jeu. 10 sept. 2009 22:30
par Tlem
Hummmm j'avoue avoir du mal à comprendre votre demande.
Dans votre premier message, vous dites :
J'aimerai lire la sortie standard d'un programme
Pour moi, cela veut dire que vous voulez lire les informations retournées dans la console ou similaire par le programme.
Mais ça, vous ne pouvez le faire que si vous avez lancé le programme et que vous contrôlez son PID.

Dans votre deuxième message, vous dites :
j'aimerai juste savoir ou il en est
Mais, ou il en est de quoi !!!!
Si vous ne lancez pas le programme; si il n'y à pas d'affichage ou de trace de sont état, comment voulez-vous connaitre quoi que ce soit ?
Donnez-nous plus d'éléments, pour pouvoir peut-être vous répondre.

Sinon, si vous avez le nom du processus, il est peut être possible de récupérer sont handle puis sont PID et à partir de là, lire la 'sortie standard', mais là c'est une autre histoire ...

Re: [..] Lecture de la sortie standard d'un programme

Posté : ven. 11 sept. 2009 08:57
par keltharak
Bonjour,

Effectivement je n'ai pas été très clair, mais je découvre cette fonctionnalité des entrée/sortie standard et ce n'est pas trop évident encore pour moi.

J'ai donc un programme qui tourne sur ma machine et qui renvoi des informations sur son avancement sur sa sortie standard. Mon script au3, complètement indépendant de ce programme (l'un ne lance pas l'autre quoi), essai de lire cette sortie standard pour connaitre l'état d'avancement de ce programme.

Par la partie de récupération du PID, je l'ai déjà :

Code : Tout sélectionner

$myProcesses = ProcessList("monProcess.exe")
$myPid = $myProcesses[1][1]
Au final je suis exactement dans le dernier cas que vous me décrivez :
Sinon, si vous avez le nom du processus, il est peut être possible de récupérer sont handle puis sont PID et à partir de là, lire la 'sortie standard', mais là c'est une autre histoire ...
Si je comprend bien, il me manquerai l'étape "récupérer handle de mon programme" puisque lire la sortie standard revient juste a faire un "$read = stdoutread($myPid)" non ?

Merci encore de vous pencher sur ce cas. :D

Re: [..] Lecture de la sortie standard d'un programme

Posté : ven. 11 sept. 2009 23:05
par Tlem
Il semble que pour lire la sortie standard d'un programme avec StdOutRead, il faut impérativement que celui-ci soit lancé par votre script afin de devenir un processus enfant.

Donc à première vue, pas de solution dans ce sens.

Cela dit, si votre programme retourne des informations par la sortie standard, alors re-dirigez ces informations vers un fichiers qui sera analysé par votre script.
Ou encore, re-dirigez les infos vers un script qui traitera les données.

Code : Tout sélectionner

MonProgramme.exe > Resultat.log
Ou :
MonProgramme.exe > MonScript.exe

Re: [..] Lecture de la sortie standard d'un programme

Posté : mar. 15 sept. 2009 09:46
par keltharak
Merci pour ces précisions, je vais voir si je peux me débrouiller en redirigeant la sortie vers un fichier, je n'y avais pas penser mais pourquoi pas, je vais voir ce que je peux en faire.