用惯了 Mac 上的 CapsLock 键切换中英文输入,回到 Windows 上就觉得按一下 Shift 非常不习惯,于是就通过 AutoHotKey 来实现这个功能

本文所编写的脚本是基于 AutoHotKey v1.1 版本,并且实现的前提是处于微软拼音输入法下(其他输入法并没有实测过)

准备工作

具体操作

脚本创建

  • 打开安装好的 AutoHotKey Dash ,创建一个新脚本
  • 填好文件的相关信息后,选择 Edit,便会跳出包含该文件的文件夹
  • 使用记事本、VSCode 或者其他编辑器打开该文件,输入以下代码
    SetStoreCapslockMode, off
    CapsLock::
    If StartTime
    return
    StartTime := A_TickCount
    return

    CapsLock up::
    TimeLength := A_TickCount - StartTime
    if (TimeLength >= 1 and TimeLength < 200) {
    Send, ^{Space}
    }
    else if (TimeLength >= 200) {
    Send, {CapsLock}
    }
    StartTime := ""
    return
  • 该代码效果如下:短按 CapsLock 键 200ms 以下切换中英文输入(也就是 Ctrl + Space),长按 200ms 以上切换大小写(和 Mac 上的逻辑一致)

编译成 exe 文件

  • 使用 AutoHotKey Dash 中的 compile 功能,将脚本编译成 exe 文件,这样就可以在实现开机启动时自动运行了

  • 选择好内容,最后点击 Convert 即可
  • 此时在 ahk 文件的同个目录下会生成一个 exe 文件

开机启动

  • 将上述的 exe 文件创建一个快捷方式,然后放到开机启动文件夹 C:\Users\[你的用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 中,这样就可以实现开机自动运行了(当然也可以直接将 exe 文件丢到该文件夹)

总结

  • 虽然也可以通过改键来实现这个操作,但是不能实现长短按的效果区分
  • 此处顺带安利一个 Windows 下的工具箱 PowerToys 里面的 Keyboard Manager 可以实现改键的功能,但是没有长短按的效果区分