AutoHotKey: переназначение Alt+Shift+Tab на (L)Win+Shift+Tab

AutoHotKey: переназначение Alt+Shift+Tab на (L)Win+Shift+Tab

Я пытаюсь использовать AutoHotKey, чтобы заставить Alt+ Tabи Shift+ Alt+ Tabв Windows вести себя так же, как Cmd+ Tabи Shift+ Cmd+ Tabв macOS.

Примечание: Cmdна Mac клавиатура отправляет Winклавишу.

Вот что мне удалось сделать:

LWin & Tab:: AltTab

Чего я не смог сделать, так это заставить LWin+ Shift+ Tabотправить Shift+ Alt+ Tab. Я пробовал:

  1. #Shift & Tab:: ShiftAltTab(ошибка: в этом случае необходимо указать L или R для #)
  2. LWin & Shift & Tab :: ShiftAltTab(Невозможно использовать 3 пользовательские комбинации)
  3.  

    Lwin & Tab::
           if GetKeyState("Shift")
               {
               Send {ShiftAltTab}
               }
           else
               {
               Send {AltTab}
               }
    

Я также пробовал с обратными строками после каждой Sendстроки. Ничего не произошло при нажатии любой из них

  • LCmd+ Tab(== LWin+ Tab) или
  • LCmd+ Shift+ Tab(== LWin+ Shift+ Tab).

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

решение1

LWin & Tab:: 
    AltTabMenu := true
    If GetKeyState("Shift","P")
        Send {Alt Down}{Shift Down}{Tab}
    else
        Send {Alt Down}{Tab}
return

#If (AltTabMenu)

    ~*LWin Up::
        Send {Shift Up}{Alt Up}
        AltTabMenu := false 
    return

#If

Протестировано на Windows 10.

решение2

Развивая ответ, данный @user3419297, еще дальше, поскольку он работал только для левых модификаторов:

LWin & Tab:: 
RWin & Tab:: 
    AltTabMenu := true
    If GetKeyState("Shift","P")
        Send {Alt Down}{Shift Down}{Tab}
    else
        Send {Alt Down}{Tab}
return

#If (AltTabMenu)
    ~*LWin Up::
    ~*RWin Up::
        Send {Shift Up}{Alt Up}
        AltTabMenu := false 
    return
    RShift::LShift
#If

Это позволяет использовать модификаторы Win и Shift взаимозаменяемо.

Связанный контент