1

В Photoshop у меня есть 3 действия для моей горячей клавиши "g":

  1. Если я удерживаю "пробел + г", увеличьте масштаб и включите инструмент (увеличение);

  2. Если нажать "g", включите инструмент (пятно);

А ТАКЖЕ...

  1. Если я коснусь "g" 2 раза, откройте меню (Ctrl+Alt+F12). Если нажать 4 раза, откройте другое меню (Shift+Alt+F1).

ПРИМЕЧАНИЕ. Для работы необходимо указать «~ g».

МОЙ ВОПРОС:

Как сгруппировать код 1 и 2 вместе с третьим?

Таким образом, третий код не работает:

; 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

1 ответ1

0

Я не знаю, правильный ли синтаксис приведенного ниже кода, потому что я новичок в AHK, но, по крайней мере, он работает.

Это работает на 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
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .