AutoHotkey 代码片段分享

作者: JalonWong | 来源:发表于2017-12-03 20:31 被阅读38次

    Alt 快捷键及组合快捷键

    保留 Alt 方案

    很多朋友都喜欢用 Alt 作为快捷键前缀,同时又不想影响该快捷键与 Ctrl、Shift 的组合功能,比如方向快捷键。这种时候要主动判断一下这些键的状态,网上其实已经有实现该功能的代码,但是很多都不够简洁,这里给大家分享一个我自己编写,认为比较简洁的版本。

    ComboKey(key)
    {
        if GetKeyState("Ctrl")
            key := "^" + key
        
        if GetKeyState("Shift")
            key := "+" + key
        
        send %key%
    }
    
    ; LAlt + Key
    *<!i::ComboKey("{Up}")
    *<!k::ComboKey("{Down}")
    *<!l::ComboKey("{Right}")
    *<!j::ComboKey("{Left}")
    *<!u::ComboKey("{Home}")
    *<!o::ComboKey("{End}")
    

    这种写法的好处是可以保留该 Alt 键本身的功能,还可以用它来触发一些系统快捷键,比如 Alt + Tab。
    但同时也带来了问题,比如在一些弹出菜单中,无法使用方向快捷键,因为 Alt 键会让菜单消失。于是我写了第二套方案。

    重映射方案

    #InputLevel 1
    LAlt::NumpadIns
    
    #InputLevel 0
    NumpadIns & i::send {blind}{Up}
    NumpadIns & k::send {blind}{Down}
    NumpadIns & j::send {blind}{Left}
    NumpadIns & l::send {blind}{Right}
    NumpadIns & u::send {blind}{Home}
    NumpadIns & o::send {blind}{End}
    

    这个方案的思路是,先把 Alt 映射到一个平时根本不会用到的键上,然后把这个键当 Fn 键用,可以玩很多组合。不会影响和 Ctrl 等键的配合,而且在弹出菜单中也可以正常使用。

    感谢阅读,Jalon 原创,转载署名,商用联系本人。

    相关文章

      网友评论

        本文标题:AutoHotkey 代码片段分享

        本文链接:https://www.haomeiwen.com/subject/rpjzbxtx.html