Тема: AHK: добавить к кнопке мыши клавишу, если мышь зажата N sec
В общем задачу вижу так:
Если мышь зажата более N sec нажать и удерживать клавишу Q в течении K sec
На первый взгляд нарисовал так:
*LButton:: ; при НАЖАТИИ
KeyWait, LButton, T3 ;N=3 ; ждать когда ОТПУСТИТ, если прошло 3 сек ErrorLevel =1
if ErrorLevel Gosub SendKeyQ
return
SendKeyQ:
Send Q
Sleep, 1000 ; K = 1
Send {Q Up}
return
Кроме того, что работает совсем не обращая внимание на условие 3 сек, в текстовом редакторе не происходит автоповтора буквы. Покопавши хелп выяснил, что возможно нужно в цикле посылать {Q Down}. Проверку отпускания клавиши как-то решил через замену KeyWait на SetTimer и проверку в подпрограмме состояния клавиши, казалось, осталось разобраться с выключением таймера после посылки серии q_нажато, но я уперся в вопрос:
а что при этом происходит с LButton? - мышь все еще передает "я нажата" или на событие "вот я нажалась" включается обработка, которая прерывает передачу "нажато"? На такую печальную мысль меня навело то, что мышь не передавала фокус в окне редактора текста скрипта, точнее не сразу передавала. Я подумал, что надо корректно сформулировать вопрос и спросить компетентных людей.
Надо _добавить_ к срабатыванию кнопки мыши (не меняя ее поведения) срабатывание клавиатурного макроса при условии, что а) мышь зажали на более чем N секунд б) на клавиатуре нужно зажать кнопку и отпустить ее через K секунд.
Подскажите как не прерывать мышь или я что-то не так понимаю?

