Functions > Process >


StdinWrite

Ecrit un nombre de caract�res dans le flux STDIN d'un processus enfant lanc� au pr�alable.

StdinWrite ( process_id [, data] )

Param�tres

process_id L'ID du processus enfant, tel que retourn� par un appel pr�c�dent � Run.
data [optionnel] Les donn�es que vous voulez �crire, du texte ou du binaire.

Valeur de retour

Succ�s: Retourne le nombre de caract�res �crits.
�chec: D�finit @error <> 0 si STDIN n'a pas �t� redirig� vers le processus ou autre erreur.

Remarques

StdinWrite() �crit dans le flux d'ent�e standard de la console pour un processus enfant, qui est normalement utilis� par les applications console pour lire des entr�es de l'utilisateur, par exemple le clavier. Pendant l'appel de Run() pour le processus enfant, pour �crire dans le STD I/O, le param�tre doit avoir inclus la valeur $STDIN_CHILD (1) pour que cette fonction travaille correctement (voir la fonction Run()).

Le second param�tre optionnel est la cha�ne que vous souhaitez �crire dans le flux. Si la fonction est appel�e sans le second param�tre, StdinWrite() ferme le flux et l'invalide pour l'�criture.

Le flux est un buffer 'first-in/first-out', premier entr� premier sorti, avec une taille limit�e arbitraire; si, � un moment o� cette fonction est appel�e (sauf si elle est appel�e � fermer le flux) il n'y a pas de place pour plus de caract�res � �crire dans le flux, la fonction StdinWrite() permet de bloquer (pause) et de ne pas retourner jusqu'� ce que le processus enfant ferme le flux ou lit assez de caract�res dans le flux pour permettre � la proc�dure d'�criture de terminer. Cela signifie que le processus AutoIt sera arr�t�, et il n'y aura pas de traitement de raccourcis clavier, ni des messages de la GUI, etc... jusqu'� ce que le processus enfant lise le flux STDIN.

Les caract�res sont convertis � la norme ANSI avant d'�tre �crits.

Les donn�es binaires sont �crites en l'�tat. Elles ne seront pas converties en une cha�ne. Pour visualiser la repr�sentation hexad�cimale de donn�es binaires, utilisez la fonction String() pour convertir explicitement les donn�es en cha�ne.

En relation

Run, RunAs, StderrRead, StdioClose, StdoutRead

Exemple

#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    Local $iPID = Run("sort.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)

    ; Ecrit une cha�ne de mots � trier dans le Stdin de sort.exe enfant
    StdinWrite($iPID, "Banana" & @CRLF & "Elephant" & @CRLF & "Apple" & @CRLF & "Deer" & @CRLF & "Car" & @CRLF)

    ; Appel de StdinWrite sans second param�tre ferme le flux.
    StdinWrite($iPID)

    ; Stocke la sortie de StdoutRead dans une variable.
    Local $sOutput = StdoutRead($iPID)

    While @error = 0
        ; Lit le flux Stdout du PID renvoy� par Run.
        $sOutput &= StdoutRead($iPID)
    WEnd

    MsgBox($MB_SYSTEMMODAL, "", "La cha�ne tri�e est: " & @CRLF & $sOutput)
EndFunc   ;==>Example