Делаю обёртку для нескольких одновременно работающих консольных приложений.
Пока единственное рабочее решение попалось тут , но информация обновляется только при нажатии кнопки, а надо чтоб обновлялась постоянно пока развёрнуто окно.
Попробовал убрать вывод из обработки кнопки в общий цикл, вроде бы работает, но при попытке выделить текст, всё что сначало выделения и до конца исчезает.
Аналогично и в оригинальном скрипте если нажать кнопку при выделенном тексте, он исчезает.
Ещё есть такая проблема как курсор. В оригинале текст писался в это поле между текстом, в то место где стоит курсор, хотя хотелось бы писать именно в конец.
В общем както нужно сделать чтоб при выделении текст не удалялся или не выделялся. Никаких функций для считывания кнопок мыши я не нашёл. Хорошо бы останавливать вывод когда курсор наведён или по активности формы или ещё чемуто
Пока единственное рабочее решение попалось тут , но информация обновляется только при нажатии кнопки, а надо чтоб обновлялась постоянно пока развёрнуто окно.
Попробовал убрать вывод из обработки кнопки в общий цикл, вроде бы работает, но при попытке выделить текст, всё что сначало выделения и до конца исчезает.
Код:
$GUI = GUICreate("Console")
$Btn = GUICtrlCreateButton("Enter", 350, 5, 45, 20, 0x01) ; $BS_DEFPUSHBUTTON
$Edt = GUICtrlCreateEdit("", 5, 30, 390, 365, 0x200840) ; $ES_READONLY + $ES_AUTOVSCROLL + $WS_VSCROLL
GUICtrlSendMsg(-1, 0xC5, -1, 0) ; $EM_LIMITTEXT
GUISetState(@SW_SHOW)
$PID = Run(@ComSpec, "", @SW_HIDE, 9)
Sleep(100)
$Out = StdoutRead($PID)
GUICtrlSetData($Edt, DllCall('user32.dll', 'bool', 'OemToChar', 'str', $Out, 'str', $Out)[2])
$Line = @ComSpec & " /c ping -t ya.ru"
Do
Switch GUIGetMsg()
Case -3
Exit
Case $Btn
StdinWrite($PID, DllCall('user32.dll', 'bool', 'CharToOem', 'str', $Line, 'str', $Line)[2] & @CRLF)
Sleep(100)
EndSwitch
$Out = StdoutRead($PID)
GUICtrlSetData($Edt, DllCall('user32.dll', 'bool', 'OemToChar', 'str', $Out, 'str', $Out)[2], 1)
Until 0
Аналогично и в оригинальном скрипте если нажать кнопку при выделенном тексте, он исчезает.
Ещё есть такая проблема как курсор. В оригинале текст писался в это поле между текстом, в то место где стоит курсор, хотя хотелось бы писать именно в конец.
В общем както нужно сделать чтоб при выделении текст не удалялся или не выделялся. Никаких функций для считывания кнопок мыши я не нашёл. Хорошо бы останавливать вывод когда курсор наведён или по активности формы или ещё чемуто