使用自动热键交换Ctrl& Alt并实现Ctrl Tab

时间:2013-08-26 23:55:25

标签: keyboard-shortcuts autohotkey

使用AutoHotKey时,我想设置一个规则来交换左边的alt和左边的ctrl。我可以这样做:

LAlt::LCtrl
LCtrl::LAlt

然后我想保持'alt tab'功能绑定那些物理键,因此我尝试了

LCtrl & Tab::AltTab

除了两个uptop之外,它还行不通。如果我这样说:

LCtrl & Tab::AltTab
LAlt::LCtrl
LCtrl::LAlt

然后选项卡将起作用,但ctrl alt swap将被破坏。有什么建议吗?

3 个答案:

答案 0 :(得分:10)

The hotkey documentation谈论通配符

  

通配符:即使按下额外的修改器,也要触发热键。这通常与重新映射键或按钮结合使用。例如:

     

* #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