Ecrit un nombre de caract�res dans le flux STDIN d'un processus enfant lanc� au pr�alable.
StdinWrite ( process_id [, data] )
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. |
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. |
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.
Run, RunAs, StderrRead, StdioClose, StdoutRead
#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