AutoHotKey:将 Alt+Shift+Tab 重新映射到 (L)Win+Shift+Tab

AutoHotKey:将 Alt+Shift+Tab 重新映射到 (L)Win+Shift+Tab

我正在尝试使用 AutoHotKey 使Windows 中的Alt+TabShift+ Alt+Tab具有与macOS 中的Cmd+TabShift+ Cmd+相同的行为Tab

注意: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++ ShiftTab

有没有快速简单的方法可以做到这一点?我想使用 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 修饰键。

相关内容