Описание функции


WinSetState

Показать, скрыть, свернуть, развернуть, или восстановить окно.

WinSetState('title','text',flag)

Параметры

title Заголовок/дескриптор/класс окна. См. заголовки и текст окон.
text Текст окна.
flag Флаг отображения окна:
@SW_HIDE = Скрыть
@SW_SHOW = Показать ранее скрытое окно
@SW_MINIMIZE = Свернуть
@SW_MAXIMIZE = Развернуть
@SW_RESTORE = Восстановить свёрнутое или развёрнутое окно
@SW_DISABLE = Запретить доступ
@SW_ENABLE = Разрешить доступ

Возвращаемое значение

Успех:Возвращает 1.
Ошибка:Возвращает 0, если окно не найдено.

Примечания

Если несколько окон соответствуют критерию, то из них используется последнее активное окно.
@SW_MINIMIZE и @SW_MAXIMIZE работает даже на модальных диалоговых окнах.

Функцию можно подключить через команду exect
Для передачи пустой строки можно воспользоваться ключевым словом Null
Для передачи значения по умолчанию можно воспользоваться ключевым словом Default

См. также

WinGetState, ControlHide, WinActivate, WinClose, WinFlash, WinKill, WinMinimizeAll, WinMinimizeAllUndo, WinMove, WinSetOnTop

Примеры:
 Как создать кнопку?


exect=$var_h=WinGetHandle('[CLASS:TTOTAL_CMD]')||WinSetState(Eval('var_h'),Null,@SW_HIDE)||Sleep(3000)||WinSetState(Eval('var_h'),Null,@SW_SHOW) ;; на 3 секунды скрыть окно Total Commander

exect=Run('notepad.exe')||$var_h=WinWait('[CLASS:Notepad]',Null,5)||WinSetState(HWnd($var_h),Null,@SW_MINIMIZE) ;; запускает "Блокнот", ожидает появление и сворачивает

infos=2||9||notepad.exe||1 <FOR> 1 <TO> GLOBALINFOS1<0> exect=WinSetState(HWnd('GLOBALINFOS1<:INDEX:>'),Null,@SW_MINIMIZE) <NEXT> ;; свернуть окна с заданным именем процесса notepad.exe

infos=2||9||notepad.exe||1 <FOR> 1 <TO> GLOBALINFOS1<0> exect=WinSetState(HWnd('GLOBALINFOS1<:INDEX:>'),Null,@SW_RESTORE) <NEXT> ;; восстановить свёрнутые или развёрнутые окна с заданным именем процесса notepad.exe

infos=2||9||TCIMG.exe||textv=x||1 <FOR> 1 <TO> GLOBALINFOS1<0> exect=WinSetState(HWnd('GLOBALINFOS1<:INDEX:>'),Null,@SW_MINIMIZE) <NEXT> ;; свернуть окна просмотрщика буфера обмена (команда textv)

infos=2||9||TCIMG.exe||textv=x||1 <FOR> 1 <TO> GLOBALINFOS1<0> exect=WinSetState(HWnd('GLOBALINFOS1<:INDEX:>'),Null,@SW_RESTORE) <NEXT> ;; развернуть свернутые окна просмотрщика буфера обмена (команда textv)

exect=WinSetState('[CLASS:TfrmTabber.UnicodeClass]',Null,@SW_HIDE) ;; скрыть окно заданного класса

exect=WinSetState('[CLASS:TfrmTabber.UnicodeClass]',Null,@SW_SHOW) ;; показать ранее скрытое окно заданного класса


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru