Но если пытаюсь вывести msgbox'ом полученную строку, то выводит пустоту.
Просьба объяснить мне, что я не правильно делаю, как пользоваться этой функцией и рассказать о других решениях данной проблемы.
Код, в котором не выводится StdoutRead():
Код:
Opt ("SendKeyDelay",0)
Dim $CMD_PId
Dim $vCMD
Dim $sRead
$CMD_PId = Run (@ComSpec)
$vCMD = WinGetHandle('[CLASS:ConsoleWindowClass]', '')
;//Safety
WinWait ($vCMD)
WinActivate ($vCMD)
WinWaitActive ($vCMD)
;//
Pr_Send ($vCMD,"cls")
Pr_Send ($vCMD,"cd C:\Users\USER\Desktop\java")
Pr_Send ($vCMD,"javac test.java")
Pr_Send ($vCMD,"java test")
$sRead = StdoutRead($CMD_PId)
msgbox (64,"Stdout Read:", $sRead)
Func Pr_Send ($handle, $param)
Dim $gotostart = true
While ($gotostart)
$gotostart = false
If WinActive ($handle) then
Send ($param&" {ENTER}")
Else
WinWaitActive ($handle,"",5)
If WinActive ($handle) then
$gotostart = True
Else
Return 0
EndIf
EndIf
WEnd
EndFunc
Где test.java:
Код:
public class test {
public static void main (String[] args){
System.out.println ("Hello World!");
}
}
P.S. Эх... Если бы не Б.8 правил...