Что нового

Как удерживать нажатие клавишь до определённого момента?

agikon

Знающий
Сообщения
789
Репутация
17
вот например одновременное нажатие клавишь Send('{alt down}{tab down}'), так вот как их удерживать до появления окна oper-ы WinWait("[REGEXPTITLE:shok:pera.*]", "", 3)

помогите разобраться чтото никак не могу понять и всё тут.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
пожалуйста подскажите, вот сижу и вообще нет никаких идей как это сделать.
Код:
Send('{alt down}{tab down}')
WinWait("[REGEXPTITLE:Opera.*]", "", 3)
;клавиши отжались
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Попробуйте так:
Код:
Do
	Send('{ALT DOWN}{TAB DOWN}')
Until WinExists("[REGEXPTITLE:Opera.*]")

Send('{ALT UP}{TAB UP}')
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot, а если после until надо проверку сделать через if то тогда как?

вот так или как?

Код:
Do
    Send('{ALT DOWN}{TAB DOWN}')
Until If  <то что проверяется>
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Отправку нажатий клавиш не надо производить в цикле, это приведет к спаму окна. Делать это разумно до цикла ожидания а не в нем
Код:
Send('{ALT DOWN}{TAB DOWN}')
Do
    Sleep(100)
Until <то что проверяется>
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
ну а если надо преверять состояние чекбокса то тут же без IF не обойтись то как писать?
If GUICtrlRead($Checkbox1) = 1

Код:
Send('{ALT DOWN}{TAB DOWN}')
Do
sleep(500)
Until If GUICtrlRead($Checkbox1) = 1

Send('{ALT UP}{TAB UP}')


вот как в этой ситуации быть?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
Do
    Send('{ALT DOWN}{TAB DOWN}')
    If GUICtrlRead($Checkbox1) = 1 Then ;Какое-то действие
Until WinExists("[REGEXPTITLE:Opera.*]")

Send('{ALT UP}{TAB UP}')
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot
нат, надо наоборот, вместо оперы надо проверу на If GUICtrlRead($Checkbox1) = 1

то есть так
Код:
Do
    Send('{ALT DOWN}{TAB DOWN}')
    Until If GUICtrlRead($Checkbox1) = 1
Send('{ALT UP}{TAB UP}')

только после Until If пишет сиетаксическая ошибка.
так вот я и хочу понять можно ли после унтила ставить if ?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Так что-ли ?:
Код:
Do
    Send('{ALT DOWN}{TAB DOWN}')
Until GUICtrlRead($Checkbox1) = 1 ;Выполняет цикл, пока галочки нету

Send('{ALT UP}{TAB UP}')
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
да именно!
спасибо. я не знал что там надо без IF.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
OffTopic:
agikon [?]
спасибо. я не знал что там надо без IF.
ну конечно не знал :smile: откуда? ведь такие вещи в справке не пишут ;)
 
Верх