実行した子プロセスのSTDINストリームに指定された文字を書き込みます。
StdinWrite ( process_id[, data] )
パラメータ
process_id | Run実行時に返される子プロセスのプロセスID。 |
data | [オプション]出力したいデータ。テキストまたはバイナリです。 |
返し値
成功 | 書き込んだ文字数を返します。 |
失敗 | STDINがプロセス、その他のエラーをリダイレクトしなかった場合、@errorを非ゼロに設定します。 |
注意
StdinWriteは子プロセスのコンソール標準入力ストリームに書き込みをおこないます。コンソール標準入力ストリームは通常はコンソールアプリケーションがキーボード入力などユーザーによる入力を読み取るために使用されます。この関数が正常に動作するためには、書き込みたい子プロセスをRunで実行する際にSTD I/Oパラメータに値 $STDIN_CHILD (1)を設定する必要があります(Run関数を参照)。
関連
StdoutRead, StderrRead, StdioClose, Run, RunAs
例
; StdinWrite()使用のデモ
#include <Constants.au3>
Local $foo = Run("sort.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
; sort.exeのSTDINにソートしたい文字列を書き込む
StdinWrite($foo, "rat" & @CRLF & "cat" & @CRLF & "bat" & @CRLF)
; 2nd argの省略でストリームを閉じる
StdinWrite($foo)
; 子プロセスのSTDOUTを読み取り、表示
Local $data
While True
$data &= StdoutRead($foo)
If @error Then ExitLoop
Sleep(25)
WEnd
MsgBox(0, "Debug", $data)