Lit dans le flux STDERR d'un processus enfant lanc� au pr�alable.
StderrRead ( process_id [, peek = False [, binary = False]] )
process_id | L'ID du processus enfant, tel que retourn� par un appel pr�c�dent � Run. |
peek | [optionnel] Si True, la fonction ne supprime pas les caract�res lus dans le flux. |
binary | [optionnel] Si True, la fonction lit les donn�es de mani�re binaire au lieu de texte (par d�faut, texte). |
Succ�s: | Retourne les donn�es lues. @extended contient le nombre d'octets lus. |
�chec: | D�finit @error <> 0 si EOF est atteint, STDERR n'a pas �t� redirig� pour le processus ou une autre erreur. |
StderrRead() lit � partir du flux de sortie standard de la console du processus enfant, qui est normalement utilis� par les applications console pour �crire sur l'�cran. Durant l'appel de Run() pour le processus enfant, si vous souhaitez lire � partir du STD I/O, le param�tre doit avoir pris en compte la valeur $STDERR_CHILD (4) sinon cette fonction ne tavaillera pas correctement (voir la fonction Run()).
StderrRead() ne bloque pas, elle retournera imm�diatement. Afin d'obtenir toutes les donn�es, elle doit �tre appel�e dans une boucle.
La lecture sur le flux ne supprime pas les donn�es de la m�moire tampon, cependant, la fonction retourne les donn�es disponibles comme d'habitude.
Par d�faut, les donn�es sont retourn�es au format texte. En utilisant l'option binaire, les donn�es seront retourn�es au format binaire.
Run, RunAs, StdinWrite, StdioClose, StdoutRead
#include <AutoItConstants.au3> #include <MsgBoxConstants.au3> Example() Func Example() ; Le script Example.au3 est suppos� absent du dossier @SystemDir, pour traiter l'erreur Local $iPID = Run(@ComSpec & " /c DIR Example.au3", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) Local $sOutput = StdoutRead($iPID) While @error = 0 ; Sort de la boucle si le processus ferme ou si StdoutRead retourne une erreur. MsgBox($MB_SYSTEMMODAL, "Stdout Read:", $sOutput) $sOutput = StdoutRead($iPID) WEnd $sOutput = StderrRead($iPID) While @error = 0 ; Sort de la boucle si le processus ferme ou si StderrRead retourne une erreur. MsgBox($MB_SYSTEMMODAL, "Stderr Read:", $sOutput) $sOutput = StderrRead($iPID) WEnd EndFunc ;==>Example