Autoit - чтение исключений Java из консоли - PullRequest
0 голосов
/ 21 января 2019

Я хочу иметь возможность выводить результат ввода из командной строки в графический интерфейс AutotIT, что мне уже удалось сделать.Эта команда содержит вызов Java.

К сожалению, я не могу вывести возможные исключения Java, такие как:

10: 20: 10,313 INFO - Инициировать соединение с 0.0.0.0/0.0.0.0: от 0 до 122.168.11.129:2900

storescu: Тайм-аут соединения: connect java.net.ConnectException: Время соединения ol.connect0 (собственный метод)

из консолимоего окна SciTE в мой графический интерфейс.Я уже попробовал все, что дал мне Google в отношении функции consoleRead (), это, похоже, не работает.

Это часть моего кода:

Func SendData()
    local $value    = GUICtrlRead($targets)
    local $target   = StringRegExpReplace($value,".*\(","")
    $target         = StringRegExpReplace($target,"\).*","")
    local $trsyntax = StringTrimLeft($value, StringInStr($value,"="))
    local $dcm4che  = GUICtrlRead($dcm4cheGUI)
    local $path     = GUICtrlRead($pathGUI)

    $command = "java -cp .\etc\storescu\;.\etc\certs;.\lib\* org.dcm4che3.tool.storescu.StoreSCU -c " & $target & " " & $path
    $cmd     = Run($command, $dcm4che,@SW_HIDE, 2)

    While True
        $sTMP = StdoutRead($cmd, False, False)
        If @error Then
            ExitLoop 1
        ElseIf $sTMP Then
            $sSTD &= $sTMP
            GUICtrlSetData($eOutput, $sTMP, 1)
        EndIf
        Sleep(100)
    WEnd
EndFunc

GUICtrlSetData выводит все в огромный, не редактируемое поле редактирования, GUI Config:

GUICreate("SCU Testing Utility", 750, 750, (@DesktopWidth-750)/2, (@DesktopHeight-750)/2, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS, $WS_EX_ACCEPTFILES)
GUICtrlCreateLabel("Sending Target: ", 25, 13, 100, 25)
$targets = GUICtrlCreateCombo("", 125, 10, 600, 30)

GUICtrlCreateLabel("dcm4che Path: ", 25, 46, 100, 25)
$dcm4cheGUI = GUICtrlCreateInput("C:\dcm4che-5.10.5", 125, 40, 600, 25)

GUICtrlCreateLabel("File/Folder to send: ", 25, 81, 100, 25)
$pathGUI = GUICtrlCreateInput("", 125, 75, 600, 25)
GUICtrlSetState (-1, $GUI_DROPACCEPTED)

GUICtrlCreateLabel("Set Path: ", 25, 110, 100, 25)

$filebutton   = GUICtrlCreateButton("File", 125, 105, 300, 25)
$folderbutton = GUICtrlCreateButton("Folder", 425, 105, 300, 25)
$eOutput      = GuiCtrlCreateEdit("", 0, 135, 750, 585, BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY))

$close = GUICtrlCreateButton("Close", 0, 720, 375, 30)
$send  = GUICtrlCreateButton("Send", 375, 720, 375, 30)

1 Ответ

0 голосов
/ 21 января 2019

Хорошо, я понял, мне пришлось поднять флаг с 2 до

$ STDERR_MERGED (0x8) = Обеспечивает одинаковый дескриптор для STDOUT и STDERR.Подразумевается как $ STDOUT_CHILD, так и $ STDERR_CHILD.

...