Тема: AHK: Настроить зажатие клавиш
Не подскажете, почему это не работает? И как сделать, чтобы работало?
q:: send, {e down}
w:: send, {e up}
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Не подскажете, почему это не работает? И как сделать, чтобы работало?
q:: send, {e down}
w:: send, {e up}
У меня работает.
q:: send, {e down}
При нажатии «q», «e» ставиться один раз. Нет, зажатия клавиши.
Конечно, нету. Скрипт посылает одиночное нажатие без отпускания.
Под зажатием обычно понимают физическое удержание клавиши на клавиатуре. При этом ОС имитирует повторное нажатие, параметры которого настраиваются через Панель управления Windows.
Можно как то сделать чтобы при нажатии буквы «q» был эффект будто клавиша «e» физически зажата?
Попробуйте взять за основу такой пример: http://forum.script-coding.com/viewtopi … 831#p59831.
Имитация системного автоповтора зажатой клавиши:
q::SendFn("e", 1) ; e down
w::SendFn("e", 0) ; e up
SendFn(key, state) {
Static ARfn := {}, KeyboardDelay := 1000 ; = HKEY_CURRENT_USER\Control Panel\Keyboard\KeyboardDelay
if (state && !ARfn.key) {
Send % "{Blind}{" key " down}"
SetTimer(ARfn.key := Func("AutoRepeat").Bind(key, true), -KeyboardDelay)
} else if (!state && ARfn.key) {
SetTimer(ARfn.key, "Delete")
AutoRepeat(key, false)
Send % "{Blind}{" key " up}"
ARfn.key := ""
}
}
AutoRepeat(key, state) {
Static ARfn := {}, KeyboardSpeed := 20 - A_KeyDelay ; ~ 1000 / (HKEY_CURRENT_USER\Control Panel\Keyboard\KeyboardSpeed + 2)
if (state) {
Send % "{Blind}" key
SetTimer(ARfn.key := Func("AutoRepeat").Bind(key, true), -KeyboardSpeed)
} else if (!state)
SetTimer(ARfn.key, "Delete")
}
SetTimer(l, p) {
SetTimer % l, % p
}
Можно как то сделать чтобы при нажатии буквы «q» был эффект будто клавиша «e» физически зажата?
Возможно вы имели ввиду:
q::e
cahtbap1, суть не в том, чтобы держать клавишу зажатой пальцем на клавиатуре, а разнести действия нажатия и отжатия по разным клавишам и сохранить системный автоповтор.
stealzy
q::
send {e down}
sleep 450
SetTimer,ed,40,on
return
ed:
send {e down}
return
w::
SetTimer,ed,off
send {e up}
return
Так?
Мм, параметр On лишний будет. Еще вы не предусмотрели случай быстрого последовательного нажатия q и w.
В остальном все как у меня с той разницей, что мой код можно без переделки использовать для любой клавиши, а также для нескольких клавиш одновременно.
teadrinker
Здраствуйте, можете мне помочь?
Я использую ахк следующим образом, при зажатии лкм , лкм множество раз нажимаеться, мне жнужно чтоб скрипт отключался на клавишу и назад включался, какие клавиши значения неимеет, можете помочь?? вот скрипт:
*LButton::
Loop
{
Click
If !GetKeyState("LButton", "P")
Break
}
Return
Greh, не надо обращаться к кому-то из участников лично за помощью (исключая случаи, когда делаете платный заказ). Не пишите в чужой теме, создайте свою, придумайте внятное название, оформите код тегом как положено, и кто-то обязательно ответит.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться