AHK - Como agrupar comandos diferentes para uma tecla de atalho?

1

No Photoshop, tenho 3 ações para minha tecla de atalho "g":

  1. Se eu segurar "espaço + g", aumente o zoom e ative a ferramenta (zoom);

  2. Se tocar em "g", ative a ferramenta (borrar);

E ...

  1. Se eu tocar em "g" duas vezes, abra o menu (Ctrl + Alt + F12). Se tocar 4 vezes, abra outro menu (Shift + Alt + F1).

NOTA: Precisa ser "~ g" para funcionar.

MINHA PERGUNTA:

Como agrupar o código 1 e 2 junto com o terceiro?

Desta forma, o terceiro código não funciona:

; CODES 1 AND 2 — WORKS:

g::
if !GetKeyState("Space","U")
{
    Send, g ; CODE 2
    return
} else {
    Send, ^{Numpad0} ; CODE 1
    Sleep 10
    Send, z
    return
}


; CODES 3 — WORKS:

~g::
    if (A_PriorHotkey <> "~g" or A_TimeSincePriorHotkey > 400)
    {
        KeyWait, g
        return
    }
    Send, % ["^!{F12}","+!{F1}"][(count >= 2 || !count) ? count := 1 : ++count]
return

; --------------------------------------------------
; Trying to put together...
; CODES 1 AND 2 + CODE 3 — (THIRD DON'T WORKS):

g::
    if !GetKeyState("Space","U")
    {
        Send, g
        return
    } else {
        Send, ^{Numpad0}
        Sleep 10
        Send, z
        return
    }
    if (A_PriorHotkey <> "~g" or A_TimeSincePriorHotkey > 400)
    {
        KeyWait, g
        return
    }
    Send, % ["^!{F12}","+!{F1}"][(count >= 2 || !count) ? count := 1 : ++count]
return
    
por rdllngr 20.09.2017 / 21:46

1 resposta

0

Eu não sei se a sintaxe do código abaixo está correta porque sou novato no AHK, mas pelo menos funciona.

Isso funciona no Photoshop CC2015:

~g::
{
    Sleep, 150
    GetKeyState, state, g, U
    IfEqual, state, U
    {
        if (A_PriorHotkey <> "~g" or A_TimeSincePriorHotkey > 400)
        {
            KeyWait, g
            return
        }
        Send, % ["^!{F12}","+!{F1}"][(count >= 2 || !count) ? count := 1 : ++count]
        return
    }
    if !GetKeyState("Space","U")
    {
        Send, g
        return
    }
    else
    {
        Send, ^{Numpad0}
        Sleep 10
        Send, z
        return
    }
}
    
por 20.09.2017 / 23:19