Тема: AHK: Настроить циклическое нажатие клавиши №1 при нажатой клавише №2
Что-то я совсем заблудился в алгоритме.
Цель:
1. Если клавиша Lbutton нажата, при нажатии и удержании NumpadAdd клавиша Lbutton должна постоянно отжиматься и нажиматься.
2. При отпускании NumpadAdd клавиша Lbutton должна работать в соответствии с физическим состоянием.
Вот такое написал:
#SingleInstance Force
#Persistent
#NoEnv
ListLines Off
SetBatchLines -1
AutoTrim, Off
CoordMode,ToolTip,Screen
CoordMode,Pixel,Srceen
CoordMode,Mouse,Srceen
SoundBeep,5555,55
global fnk1
Return
#if funk_true() = 1
~LButton:: ;нажатие
GetKeyState, LBT_P, LButton, P
Povtor1:
Sleep,20
DllCall("mouse_event", uint, 4) ;Up
GetKeyState, LBT_P, LButton, P
if (LBT_P = "D")
{
Sleep,20
DllCall("mouse_event", uint, 2) ;Down
Goto, Povtor1
}
Return
#if
funk_true()
{
Sleep, 20
GetKeyState, LBT_P, LButton, P
if (LBT_P = "D")
LBT_Down := 1
else
LBT_Down := 0
GetKeyState, Key2, NumpadAdd, P
if (Key2 = "D")
Key2 := 1
else
Key2 := 0
fnk1 := Key2 * LBT_Down
Sleep, 20
Return fnk1
}
Return
Но работает криво:
1) Чтобы началась работа "Up/Down" приходится сначала нажимать NumpadAdd. А хотелось бы чтобы срабатывало в любой момент при любом порядке нажатия.
2) Если процесс всё же начался, то при отпускании NumpadAdd игра "Up/Down" продолжается, не смотря что LButton в положении Down. И так до отпускания LButton.
Как исправить?
Заранее спасибо!