Есть ли способ сообщить действию autohotkey (подпрограмма), чтобы отпустить Alt
несмотря на то, что его триггер Alt + X
?? вот мой код ...
!x::
sleep 100
it does some clicks and drags here (work fine)
return
но, несмотря на sleep 100
в моем коде, иногда, когда я нажимаю Alt + X
если я вручную нажимаю alt, скрипт выполняет Alt Click
, а не только Click
который делает совершенно другую вещь.
Я знаю, что мог бы увеличить задержку (сон 100) или настроить AHK на ожидание, пока не будет выпущена клавиша alt, но ничего из этого не поможет, потому что этот скрипт будет запускаться несколько раз непрерывно, поэтому я предпочитаю удерживать Alt
и нажать вниз / вверх x
несколько раз, чтобы запустить его несколько раз непрерывно.
Поэтому мне нужен способ временно заблокировать клавиатуру или настроить скрипт на отпускание клавиши alt, чтобы autohotkey не распознавал, что мой палец все еще нажимает Alt
при выполнении сценария несколько раз.
Мне нужно что-то похожее на это ...
BlockInput, MouseMove
BlockInput, On
Кстати, я пробовал оба, они не работают.
EDIT >>>>>
Это моя функция, чтобы нажать и перетащить ...
AR4clickDnABmoveClickUpCDfn(ParamA, ParamB, ParamC, ParamD)
{
If AR4togWorkbMode
{
AR4workbModeFn() ; Since this fn is used to click n drag panels, after disabling AR4workbMode I won't enable it back, cuz is supposed I need to see the Panel I'm draging afterward
AR4togWorkbMode := !AR4togWorkbMode ; So AR4retWorkbMode doesn't need to be set, but AR4togWorkbMode does
Sleep 200
}
MouseGetPos X, Y
BlockInput, On
; BlockInput, MouseMove
Sleep 50
MouseMove, ParamA, ParamB
Click down
Sleep 50
Loop 10
{
MouseMove, -1, 1, 100, R
}
Sleep 40
MouseMove, ParamC, ParamD, 100
Click Up
BlockInput, Off
; BlockInput, MouseMoveOff
MouseMove %X%, %Y%
}
Тогда я в другой подпрограмме !x
запустить подпрограмму, которая будет щелкать панель и вызывать функцию click and drag
, чтобы перетащить панель, вот и все.
#If WinActive("ahk_class ArtRage 3") or WinActive("ahk_class ToolWindow")
<!x::
; Lalt & x::
If !AR4togToolSetsNear ; will run the first time the hotkey is pressed cuz the toggle var is not set yet
{
Sleep 220
AR4clickDnABmoveClickUpCDfn(AR4toolSetsX0 + AR4toolSetsSetGapXX, AR4toolSetsY0 + 10, AR4toolSetsNearX, AR4toolSetsNearY)
AR4togToolSetsNear := !AR4togToolSetsNear
Sleep 20
WinActivate, ahk_class ArtRage 3
}
Else
{
Sleep 220
AR4clickDnABmoveClickUpCDfn(AR4toolSetsNearX, AR4toolSetsNearY, AR4toolSetsX0 + AR4toolSetsFarDifXX, AR4toolSetsY0 + AR4toolSetsFarDifYY)
AR4togToolSetsNear := !AR4togToolSetsNear
Sleep 20
WinActivate, ahk_class ArtRage 3
}
Return
#If
НО, поскольку этот триггер подпрограммы содержит Lalt
если я нажимаю и удерживаю Alt
, нажимая и отпуская X
несколько раз, чтобы вызвать подпрограмму несколько раз. Затем скрипт AHK будет отправлять Alt Click and Drag
и не только Click and Drag
первый будет фактически вращать панель, в то время как последний будет ее перемещать, я хочу переместить его, но не повернуть, но с другой стороны мне нужно нажать и удерживайте ALT для запуска подпрограммы несколько раз, как я могу это сделать ??
Как я могу заставить AHK видеть Alt-клавиатуру как отпущенную, когда я нажимаю вручную?
Надеюсь, что какой-нибудь супер пользователь сможет мне помочь, спасибо продвинутый.