Тема: AHK: Память о нажатии горячей клавише в скрипте
Доброго времени суток, есть скрипт на нажатие отжатие правой кнопки мыши.Активируется скрипт нажатием кнопки "F7", нужно что бы при повороте колёсика вниз переменные ("np" и "op" были равны нулю),но в тоже время скрипт помнил активировался он нажатием кнопки "F7" или нет, а при повороте колёсик вверх становился в исходное состояние (если вначале кнопка "F7" нажималась то переменные "np" и "op" должны быть равны единице а если не нажималась то нулю.
Думаю что нужно использовать встроенную переменную "A_ThisHotkey", но незнаю как реализовать.
$*~vk57:: ;W
DllCall("Sleep", UInt, 40)
if MoveOFF555
MouseClick, X1,,, 1, 0, D
KeyWait, vk57 ;W
MouseClick, X1,,, 1, 0, U
return
*~vk51:: ; Q
npp := 0x08
opp := 0x010
return
*~$vkA0:: ;lhift
MoveOFF555 := 0
KeyWait, vkA0
MoveOFF555 := 1
Return
*~WheelUp:: ; колёсик вверх
MoveOFF555 := 1
npp := 0
opp := 0
Return
*~WheelDown:: ; колёсик вниз
MoveOFF555 := 1
np := 0
op := 0
return
*~vk76:: ; F7 ; активация
Suspend, Off
Gui Submit, NoHide
If keystroker = 1
{
keystroker =
np := 0
op := 0
SoundBeep, 1000
}
Else if keystroker =
{
keystroker = 1
np := 0x08
op := 0x010
SoundBeep, 1000
}
return
*~$LButton::
DllCall("mouse_event", UInt, npp, Int, 0, Int, 0, UInt, 0, Int, 0) ; нажать правую кнопку мыши
DllCall("Sleep", UInt, 40)
DllCall("mouse_event", UInt, opp, Int, 0, Int, 0, UInt, 0, Int, 0) ; отпустить правую кнопку мыши
DllCall("mouse_event", UInt, np, Int, 0, Int, 0, UInt, 0, Int, 0) ; нажать правую кнопку мыши
DllCall("Sleep", UInt, 40)
DllCall("mouse_event", UInt, op, Int, 0, Int, 0, UInt, 0, Int, 0) ; отпустить правую кнопку мыши
while GetKeyState("LButton","P")
{
Click
Sleep, 40
SetMouseDelay, 50 ,50
}
return
