我正在尝试使用 AutoHotKey 使Windows 中的Alt+Tab和Shift+ Alt+Tab具有与macOS 中的Cmd+Tab和Shift+ Cmd+相同的行为Tab。
注意:Cmd在 Mac 键盘上发送Win键。
我要做的工作是:
LWin & Tab:: AltTab
我无法做的是让LWin+ Shift+Tab发送Shift+ Alt+ Tab。我试过了:
#Shift & Tab:: ShiftAltTab
(错误:在这种情况下必须为 # 指定 L 或 R)LWin & Shift & Tab :: ShiftAltTab
(不能使用 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 修饰键。