Schreibt eine Anzahl von Zeichen in den STDIN-Stream eines zuvor gestarteten Child-Prozesses.
StdinWrite ( process_id[, data] )
Parameter
| process_id | Die Prozess-ID eines Child-Prozesses, wie aus einem vorigen Aufruf von Run zurückgegeben. |
| data | [optional] Die auszugebenden Daten. Diese können entweder Text oder binär sein. |
Rückgabewert
| Erfolg: | Gibt die Anzahl der geschriebenen Zeichen zurück. |
| Fehler: | Setzt @error auf nicht-Null, falls STDIN an diesen Prozess nicht weitergeleitet wurde oder falls ein anderer Fehler auftrat. |
Bemerkungen
StdinWrite schreibt in den Konsolen-Standard-Eingabe-Stream eines Child-Prozesses, der normalerweise von Konsolen-Applikationen genutzt wird, um Benutzereingaben zu lesen, z.B. von der Tastatur. Während des Aufrufs von Run für den Child-Prozess, in den man schreiben möchte, muss der STD I/O Parameter den Wert von $Stdin_Child (1) enthalten, damit diese Funktion richtig arbeitet (siehe die Funktion Run).
Verwandte Funktionen
StdoutRead, StderrRead, StdioClose, Run, RunAs
Beispiel
; Demonstriert den Gebrauch von StdinWrite()
#include <Constants.au3>
Local $foo = Run("sort.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
; Schreibt den zu sortierenden String in sort.exe's STDIN
StdinWrite($foo, "Ratte" & @CRLF & "Katze" & @CRLF & "Fledermaus" & @CRLF)
; Aufruf ohne zweites Argument schliesst den Stream
StdinWrite($foo)
; Lies aus dem Child's STDOUT und zeige es an
Local $data
While True
$data &= StdoutRead($foo)
If @error Then ExitLoop
Sleep(25)
WEnd
MsgBox(0, "Debug", $data)