Ferme toutes les ressources associ�es � un processus lanc� pr�c�demment avec la redirection STDIO.
StdioClose ( process_id )
process_id | L'ID du processus enfant, tel que retourn� par un appel pr�c�dent � Run. |
Succ�s: | Retourne une valeur non nulle. |
�chec: | Retourne 0 si le processus n'a pas eu de redirection STDIO ou �tait d�j� ferm�. |
Run, RunAs, StderrRead, StdinWrite, StdoutRead
#include <AutoItConstants.au3> #include <MsgBoxConstants.au3> #include <Array.au3> ; N�cessaire pour _ArrayDisplay seulement. ; Affiche de mani�re r�cursive une liste de fichiers dans un r�pertoire. Example() Func Example() Local $sFilePath = @ScriptDir ; Recherche dans le r�pertoire du script en cours. Local $sFilter = "*.*" ; Recherche tous les fichiers dans le r�pertoire courant. Pour une liste des caract�res g�n�riques valides, recherchez 'caract�res g�n�riques' dans le fichier d'aide. Local $sOutput = "" ; Stocke la sortie de StdoutRead dans une variable. ; Si le chemin du fichier n'est pas un r�pertoire alors Return de la fonction 'Example'. If Not StringInStr(FileGetAttrib($sFilePath), "D") Then Return SetError(1, 0, 0) EndIf ; Enl�ve les antislashs de fin et ajoute une simple barre oblique inverse. $sFilePath = StringRegExpReplace($sFilePath, "[\\/]+\z", "") & "\" #cs Param�tres en ligne de commande pour DIR: /B - Simple sortie. /A-D - Recherche tous les fichiers, moins les r�pertoires. /S - Recherche dans les sous-r�pertoires. #ce Local $iPID = Run(@ComSpec & ' /C DIR "'& $sFilePath & $sFilter & '" /B /A-D /S', $sFilePath, @SW_HIDE, $STDOUT_CHILD) ; Ferme le flux Stdio du PID retourn� par Run. Cela entra�nera que la bo�te de message ne sera pas capable de lire le flux de sortie standard. StdioClose($iPID) $sOutput = StdoutRead($iPID) ; Sort de la boucle si le processus ferme ou si StdoutRead retourne une erreur. While @error = 0 ; Lit le flux Stdout du PID retourn� par Run. $sOutput &= StdoutRead($iPID) WEnd ; Utilise StringSplit pour partager la sortie de StdoutRead en un tableau. Tous les retours chariot (@CRLF) sont supprim�s et @CRLF (saut de ligne) est utilis� comme s�parateur. Local $aArray = StringSplit(StringTrimRight(StringStripCR($sOutput), StringLen(@CRLF)), @CRLF) If @error Then MsgBox($MB_SYSTEMMODAL, "", "Il semble qu'il y ait eu une erreur en essayant de trouver tous les fichiers dans le r�pertoire du script courant.") Else ; Affiche les r�sultats. _ArrayDisplay($aArray) EndIf EndFunc ;==>Example