将 Ctrl 重新映射到 Alt 并保留 Alt+Tab 和 Ctrl+Tab

her*_*ano 2 windows keyboard keyboard-shortcuts autohotkey

我正在使用自动热键来交换 Ctrl 和 Alt

LAlt::LCtrl
LCtrl::LAlt 
Run Code Online (Sandbox Code Playgroud)

这很好用,但最重要的是,我想将 Alt+Tab 和 Ctrl+Tab 保留在原来的位置。

我已经尝试了很多不同的代码片段,但到目前为止都没有真正有效。

我最接近完全可用的解决方案,但仅适用于 Alt+Tab 而没有 Shift+Alt+Tab 是/sf/ask/1291842681/ -alt-and-implement-ctrl-tab

her*_*ano 6

明白了,现在可以使用了!

它的方向是正确的,但是代码存在一些问题。特别是如果 LShift 是假的,则不会被检查,因此第一个语句始终为真。

我还添加了对 Ctrl+Tab 的支持。

*tab:: 
{   
    if (GetKeyState("LAlt", "P") AND GetKeyState("LShift", "P") = false) {     
        Send {LControl up}{LAlt down}{tab}
        KeyWait, tab  
    } else if (GetKeyState("LAlt", "P") AND GetKeyState("LShift", "P")) {     
        Send {LControl up}{LShift down}{LAlt down}{tab}
        KeyWait, tab
    } else if (GetKeyState("LCtrl", "P") AND GetKeyState("LShift", "P") = false) {     
        Send {LAlt up}{LCtrl down}{tab}
        KeyWait, tab
    } else if (GetKeyState("LCtrl", "P") AND GetKeyState("LShift", "P")) {  
        Send {LAlt up}{LShift down}{LCtrl down}{tab}
        KeyWait, tab
    } else if (GetKeyState("LWin", "P") AND GetKeyState("LShift", "P") = false) {     
        Send {LWin down}{tab}
        KeyWait, tab
    } else if (GetKeyState("LWin", "P") AND GetKeyState("LShift", "P")) {  
        Send {LShift down}{LWin down}{tab}
        KeyWait, tab
    } else {   
        send {tab}
    }      
    return
}

~LAlt Up::
{   
    send {LAlt up}
    return
}

~LCtrl Up::
{   
    send {LCtrl up}
    return
}

LAlt::LCtrl 
LCtrl::LAlt
Run Code Online (Sandbox Code Playgroud)