creature.ws пишет:Работает так, это вам кажется, что «не работает».
Нажали вы клавишу, перехватилось autohotkey-ем это событие, выполнилась подпрограмма от T:: до return, продолжаете удерживать клавишу — продолжают «клавиатурой» отправляться нажатия, продолжает выполняться подпрограмма от T:: до return, отпускаете клавишу выполняется подпрограмма от T Up:: до return, видите время прошедшее с момента перехвата отправленного нажатия до момента перехвата отправленного «отпускания».
Возможно, стоит таки обратить внимание на пример из сообщения #3.
Ок. Теперь понял. Я предполагал такое и это вписывается в логику. Но тогда почему, например, вот тут:
RBUTTON::
{
Send {Q}
}
return
Подпрограмма выполнится лишь один раз. Т.е. кнопка Q нажмется лишь один раз после зажатия правой кнопки мыши, а не будет нажиматься до тех пор, пока я не отпущу правую кнопку мыши. Точно так же, как и эта программа нажмет кнопку Q только один раз:
RBUTTON::
{
Send {Q Down}
sleep, 50
Send {Q Up}
}
return
creature.ws пишет:Возможно, стоит таки обратить внимание на пример из сообщения #3.
Я сразу обратил внимание и попробовал. A_TimeSinceThisHotkey работает отлично. Спасибо вам за подсказки.
Но мне все равно интересно, как же все-таки записать значение теперешнего времени только один раз, сразу после нажатия. Подскажите, пожалуйста, как мне это сделать.
Мне нужно измерять время не только сколько кнопка зажата, но и сколько она была отпущенна.
Только что пришло в голову. Надо будет попробовать так:
vk52::
start_time := A_TickCount
KeyWait, vk52
UpTime := A_TickCount
Return
Irbis пишет:creature.ws, бывают такие случаи, когда человек не хочет понять доносимой ему мысли...
Тогда проще дать готовый пример, если уж есть желание помочь. А лучше просто "забить" на это дело.
vk52::
KeyWait, % A_ThisHotkey
if (A_TimeSinceThisHotkey < 150) ; 50мс маловато, ИМХО
{
; Выполнить этот участок кода
}
else
{
; Выполнить этот участок кода
}
return
В данном случае человек не не хочет, а не может.
Готовый пример это хорошо, но гораздо эффективнее объяснить принцип.
Ну и, конечно же, гораздо проще забить.
Меня сбило с толку то, что кнопки жмутся лишь один раз. И я думал, что время запишется тоже только один раз. А как оказалось, подпрограмма зацикливается. Но мне до сих пор непонятно, почему кнопки жмутся лишь один раз, а время записывается циклично до того как отпустишь клавишу, а не один раз сразу после нажатия, как в случае с нажатием кнопок.