1

Тема: AHK: Настроить зажатие клавиш

Не подскажете, почему это не работает? И как сделать, чтобы работало?


q:: send, {e down}
w:: send, {e up}

2

Re: AHK: Настроить зажатие клавиш

У меня работает.

3 (изменено: user1, 2017-05-13 22:33:33)

Re: AHK: Настроить зажатие клавиш


q:: send, {e down}

При нажатии «q», «e» ставиться один раз. Нет, зажатия клавиши.

4

Re: AHK: Настроить зажатие клавиш

Конечно, нету. Скрипт посылает одиночное нажатие без отпускания.
Под зажатием обычно понимают физическое удержание клавиши на клавиатуре. При этом ОС имитирует повторное нажатие, параметры которого настраиваются через Панель управления Windows.

5

Re: AHK: Настроить зажатие клавиш

Можно как то сделать чтобы при нажатии буквы «q» был эффект будто клавиша «e» физически зажата?

6

Re: AHK: Настроить зажатие клавиш

Попробуйте взять за основу такой пример: http://forum.script-coding.com/viewtopi … 831#p59831.

7 (изменено: stealzy, 2017-05-14 14:41:44)

Re: AHK: Настроить зажатие клавиш

Имитация системного автоповтора зажатой клавиши:

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
}

8

Re: AHK: Настроить зажатие клавиш

user1 пишет:

Можно как то сделать чтобы при нажатии буквы «q» был эффект будто клавиша «e» физически зажата?

Возможно вы имели ввиду:

q::e

9

Re: AHK: Настроить зажатие клавиш

cahtbap1, суть не в том, чтобы держать клавишу зажатой пальцем на клавиатуре, а разнести действия нажатия и отжатия по разным клавишам и сохранить системный автоповтор.

10

Re: AHK: Настроить зажатие клавиш

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

Так?

11

Re: AHK: Настроить зажатие клавиш

Мм, параметр On лишний будет. Еще вы не предусмотрели случай быстрого последовательного нажатия q и w.
В остальном все как у меня с той разницей, что мой код можно без переделки использовать для любой клавиши, а также для нескольких клавиш одновременно.