Привет! Пишу библиотеку для считывания из потока и записи в поток интерпретатора Windows cmd.exe. Возникла проблема: срабатывает программа только один раз, т.е. ввожу команду, например help, нажимаю Send, выводится результат, потом ввожу еще раз команду, нажимаю Send, результата нет. Не могу разобраться у меня чтение или запись не работает.
Код:
#include<GUIConstantsEx.au3>
#include<Constants.au3>
$Win = GUICreate(@UserName,600,800)
$ResultEdit = GUICtrlCreateEdit("",10,10,580,670);Сюда выводится результат
$CMLineEdit = GUICtrlCreateEdit("",10,680,580,80);Сюда вводятся команды
$SendButton = GUICtrlCreateButton("Send",10,770,80,20);Отправить команду интерпретатору
$sPid = Run("C:\Windows\system32\cmd.exe",@SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
GUISetState(@SW_SHOW)
While 1
$GUIGetMsg = GUIGetMsg()
If $GUIGetMsg = $SendButton Then
$sResult = ""
$sLine = GUICtrlRead($CMLineEdit)
StdinWrite($sPid,$sLine)
StdinWrite($sPid,@CRLF)
StdinWrite($sPid)
While 1
$sResult &= StdoutRead($sPid,False,False)
If @error Then ExitLoop
WEnd
GUICtrlSetData($ResultEdit,$sResult)
GUICtrlSetData($CMLineEdit,"")
EndIf
If $GUIGetMsg = $GUI_EVENT_CLOSE Then Exit
WEnd