Что нового

Как послать две клавиши одновременно, именно одновременно!

agikon

Знающий
Сообщения
789
Репутация
17
Тут что я выявил, толи я чтото не то делаю толи действительно так и есть. А есть вот что.
Что не делай но одновременно всёравно не получается послать две нажатия клавищь одновременно.
Вот например команда
Код:
$st=TimerInit()
Opt("SendKeyDownDelay", 5000); 5 сек
Send("w{SPACE}")
ConsoleWrite('!time: '& TimerDiff($st)   & @CRLF)


посылает сначала 5 секунд нажатие w, а gотом только 5 секунд на SPACE

А можно чтобы одновременно?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
$st=TimerInit()
Send("w{SPACE}")
ConsoleWrite('!time: '& TimerDiff($st)   & @CRLF)


SendKeyDownDelay:
Изменяет продолжительность нажатого состояния клавиши, перед тем как отпустить. Для программ принимающих это при регистрации нажатых клавиш (и многих игр) вам возможно понадобится повысить это значения выше чем по умолчанию. Значение - 0 полностью устраняет задержки.
Время в миллисекундах (по умолчанию=5).
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot ,
а если надо именно 5 секунд зажать одновременно две клавиши?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Попробуй так:
Код:
$init = TimerInit()
Do
	Send('{w down}{SPACE down}')
Until TimerDiff($init) > 5000
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Код:
Opt("SendKeyDelay", 0)


Opt("SendKeyDownDelay", 0)
Send("{w down}");удерживать клавишу
Opt("SendKeyDownDelay", 5000)
Send("{SPACE}")
Send("{w up}");Отпустить клавишу
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot
вы просто ас в аутоите!!!
я просто не знаю...
Почему Вы еще не админ?
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
rusreg79
спасибо Вам и такой код пригодится!
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Код от Zaramot не так работать будет как требовалось по теме, там клавиши будут непрерывно нажиматься по очереди пока не закончится время, имейте это в веду :smile:
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
rusreg79
не знаю что там нажимается но я подставил в свой код код Зарамота, и получил то что хотел, клавиши нажимаются одновременно на протяжении 5 секунд.

А вот в Вашем коде я чтото не разберусь. Для интереса поставил ваш код и чтото не работает та как требовалось в задаче. Если не трудно то оптимизируйте а то я не пойму толи там лишняя самая верхняя строчка , ну вот эта Opt("SendKeyDelay", 0), толи кто его знает.

Ну от смотрите на вашем коде даже я новичек вижу что нажимается только клавиша w на 5 секунд. А SPACE потом только разок кликается, и всё. Так происходит и на практике когда я его подставлял, нажимается на 5 секунд только w.
Так как я человек любопытнвый то если не трудно то перепишите чтобы и ваш код работал так как у Зарамота.
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Ну от смотрите на вашем коде даже я новичек вижу что нажимается только клавиша w на 5 секунд. А SPACE потом только разок кликается, и всё. Так происходит и на практике когда я его подставлял, нажимается на 5 секунд только w.
Opt("SendKeyDelay", 0) я думаю лишнее, опция убирает задержку между нажатиями клавиш в 5ms.
Клавиша SPACE нажимается "разок" на 5сек - если надо чтобы большее число раз нажималась то напишите сколько нужно?

можно еще так выполнить задачу
Код:
Send("{w down}");удерживать клавишу
Send('{SPACE down}');удерживать клавишу
Sleep(5000)
Send("{w up}");Отпустить клавишу
Send('{SPACE up}');Отпустить клавишу
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
ооо вот это уже оно.
спасибо.
 
Верх