Что нового

Как заранее задать свойства окон WinSetState, например, до их появления?

Ocago

Новичок
Сообщения
35
Репутация
0
Всем привет,

Возможно-ли при старте скрипта указать свойства определённому классу окон, если они будут появляться в процессе выполнения скрипта?
Например новые окна IE?

Т.е. известно имя процесса и название класса (CLASS:IEFrame). При этом для каждого нового окна (например popup жабовый на ссылке) будет открываться новый процесс iexplore.exe со своим PID (ну, и Handle тоже уникальный будет).
Вот как-либо указать такого рода окнам заранее свойства (@SW_SHOW - @SW_MAXIMIZE или @SW_HIDE) возможно?

Пробую обычные способы, например клик по ссылке в родительском окне вызывает попап. Получаю его Handle и устанавливаю свойства:
_IEAction ($oLink, "click")
....
Sleep(1000)
$hIEFrame = WinGetHandle ("[CLASS:IEFrame]")
WinSetState($hIEFrame, "", @SW_HIDE)

Но вот при таком подходе есть недостаток - если не поставить задержку (не менее 500-700ms - в данном примере Sleep(1000)), то WinGetHandle не успевает получить идентификатор и соответственно WinSetState далее не может установить свойства. Окно остаётся открытым.
Sleep(1000) - до момента срабатывания установок проходит секунда. Т.е. окно мелькает секунду - потом скрывается, конечно.

Но, это-же как-то не эстетично получается :smile:
Хотелось-бы элегантно решить вопрос, чтобы подобные окна вели так, как им указано (т.е. и не появляться вообще, в данном примере).

Возможно-ли вообще как-то решить проблему?
Заранее спасибо за любые подсказки/советы.
 
Верх