AutoHotKey: Alt+Shift+Tab を (L)Win+Shift+Tab に再マッピング

AutoHotKey: Alt+Shift+Tab を (L)Win+Shift+Tab に再マッピング

AltAutoHotKey を使用して、Windows の+TabおよびShift+ Alt+ をmacOS の +および+ +Tabと同じ動作にしようとしています。CmdTabShiftCmdTab

注: CmdMac キーボードではWinキーが送信されます。

私が取り組んだことは次のとおりです。

LWin & Tab:: AltTab

私ができなかったのは、LWin+ Shift+に+ +Tabを送信させることです。私は次のことを試しました:ShiftAltTab

  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)。

これをすばやく簡単に行う方法はありますか? 他の多くの Mac キーボードの動作を模倣するように組み合わせを変更する AHK を使用したいと思います。

答え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 修飾子の両方を互換的に使用できるようになります。

関連情報