実行した子プロセスのSTDOUTストリームを読み取ります。
StdoutRead ( process_id[, peek = false[, binary = false]] )
パラメータ
process_id | Run実行時に返される子プロセスのプロセスID。 |
peek | [オプション]trueの場合、関数は読み取った文字をストリームから削除しません。 |
binary | [オプション]trueの場合、関数はテキストではなくバイナリとしてデータを読み取ります(デフォルトではテキストです)。 |
返し値
成功 | 読み取ったデータを返します。@extendedには読み取ったバイト数が格納されます。 |
失敗 | EOFに到達した場合、@errorを非ゼロに設定しますSTDOUTはプロセス、その他のエラーをリダイレクトしません。 |
注意
StdoutReadは子プロセスのコンソール標準出力ストリームを読み取ります。コンソール標準出力ストリームは通常はコンソールアプリケーションがスクリーンに表示をおこなうために使用されます。この関数が正常に動作するためには、読み取りたい子プロセスをRunで実行する際にSTD I/Oパラメータに値 $STDOUT_CHILD (2)を設定する必要があります(Run関数を参照)。
関連
StderrRead, StdinWrite, StdioClose, Run, RunAs
例
; StdoutRead()のデモ
#include <Constants.au3>
Local $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDOUT read:", $line)
Wend
While 1
$line = StderrRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDERR read:", $line)
Wend
MsgBox(0, "Debug", "Exiting...")