Iteration:=50 ; задержка между нажатиями
PressD:=15 ; величина удержания нажатия
Value:=10 ; значение переменной которой будем...
; ...воздействовать на другие переменные в коде
; отладка:
; изменяем задержку между нажатиями
=::ChangeVars("Itr", Iteration+=Value) ; plus
>^=::ChangeVars("Itr", Iteration-=Value) ; rctrl+plus
; изменяем величину удержания нажатия
-::ChangeVars("Press", PressD+=Value) ; minus
>^-::ChangeVars("Press", PressD-=Value) ; rctrl+minus
; изменяем "величину шага"
F12:: ; одно нажатие - 1, два бысрых - 10, и т.д., до 4х
KeyWait, % A_ThisHotkey
If A_TimeSinceThisHotkey>350
Exit
Itr++
SetTimer, Counter, -350
Return
Counter:
ChangeVars("Value", Value:=Itr=1
? 1: Itr=2
? 10: Itr=3
? 100:500)
Itr:=""
Return
; предустановки:
1::Iteration:=50, PressD:=15
2::Iteration:=100, PressD:=30
3::Iteration:=125, PressD:=50
4::Iteration:=150, PressD:=75
5::Iteration:=300, PressD:=100
; и т.д.
; горячая клавиша действия:
Space:: ; принцип работы - переключатель
SetTimer, Action, % (IsState:=!IsState) ? -0:"Off"
KeyWait, % A_ThisHotkey
Return
; собственно само действие:
Action:
Send, % IsState ? "{vk41 Down}":"" ; g
Sleep, IsState ? PressD:-1
Send, {vk41 Up}
Sleep, IsState ? Iteration:-1
Send, % IsState ? "{vk44 Down}":"" ; h
Sleep, IsState ? PressD:-1
Send, {vk44 Up}
Sleep, IsState ? Iteration:-1
SetTimer, % IsState ? "Action":"EndAction", -0
EndAction:
Return
; функция для вывода информации (отладка):
ChangeVars(Arg*)
{
; если не полноэкранное приложение, то вполне подходит трэйтип:
TrayTip, % Arg.1, % Arg.2 ; если наоборот,...
; ...то нужно заменить вывод информации на "сырой ввод" в поле чата
;SendInput, {vk59} ; допустим Y - клавиша чата
;Sleep, 250
;SendInput, % "{Raw}"Arg[1]" "Arg[2]
;Sleep, 750
;SendInput, {Esc}
}