AutoHotKey:將 Alt+Shift+Tab 重新對應為 (L)Win+Shift+Tab

AutoHotKey:將 Alt+Shift+Tab 重新對應為 (L)Win+Shift+Tab

我正在嘗試使用 AutoHotKey 在 Windows 中獲取Alt+TabShift+ Alt+ ,使其具有與 macOS 中的+和+ +Tab相同的行為。 CmdTabShiftCmdTab

注意:Cmd在 Mac 鍵盤上傳送Win金鑰。

我已經開始工作的是:

LWin & Tab:: AltTab

我無法做到的是 get 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 修飾符可以互換使用。

相關內容