使用AutoHotKey时,我想设置一个规则来交换左边的alt和左边的ctrl。我可以这样做:
LAlt::LCtrl
LCtrl::LAlt
然后我想保持'alt tab'功能绑定那些物理键,因此我尝试了
LCtrl & Tab::AltTab
除了两个uptop之外,它还行不通。如果我这样说:
LCtrl & Tab::AltTab
LAlt::LCtrl
LCtrl::LAlt
然后选项卡将起作用,但ctrl alt swap将被破坏。有什么建议吗?
答案 0 :(得分:10)
通配符:即使按下额外的修改器,也要触发热键。这通常与重新映射键或按钮结合使用。例如:
* #c ::运行Calc.exe; Win + C,Shift + Win + C,Ctrl + Win + C等都将触发此热键。
* ScrollLock :: Run Notepad;即使modifer键已关闭,按Scrolllock也会触发此热键。
所以试试这个
*tab::
{ if(GetKeyState("LAlt", "P"))
{ Send {LControl up}{Alt down}{tab}
KeyWait, tab
}else
{ send {tab}
}
return
}
~LAlt Up::
{ send {lalt up}
return
}
LAlt::LCtrl
LCtrl::LAlt
答案 1 :(得分:4)
我稍微对此进行了改进,以修复shift标签无法正常工作,现在您可以按照预期使用 Shift + 标签,而不是之前(尝试解决方法令人沮丧)缩进(outdent)编码时)我可以改进这一点并获得 Shift + Alt + Tab working
*tab::
{
if(GetKeyState("LAlt", "P")){
Send {LControl up}{Alt down}{tab}
KeyWait, tab
} else if(GetKeyState("LShift", "P")){
Send {LShift down}{tab}
KeyWait, tab
}else
{ send {tab}
}
return
}
~LAlt Up::
{ send {lalt up}
return
}
LAlt::LCtrl
LCtrl::LAlt
答案 2 :(得分:1)
我自己遇到了同样的问题,正在寻找一个更直接的解决方案。如果您使用SharpKeys(或其他注册表重新映射工具)从那里交换Alt和Ctrl,这很简单:
RCtrl&标签:: AltTab