用惯了 Mac 上的 CapsLock 键切换中英文输入,回到 Windows 上就觉得按一下 Shift 非常不习惯,于是就通过 AutoHotKey 来实现这个功能
本文所编写的脚本是基于 AutoHotKey v1.1 版本,并且实现的前提是处于微软拼音输入法下(其他输入法并没有实测过)
准备工作#
下载安装 AutoHotKey,建议下载 v2 版本,因为 v1 版本已经停止维护,同时 v2 版本的语法更加简洁,也兼容 v1 版本的脚本
这里也附上 AutoHotKey 的中文社区,里面可以找到许多教程和脚本
具体操作#
脚本创建#
- 打开安装好的 AutoHotKey Dash ,创建一个新脚本

- 填好文件的相关信息后,选择 Edit,便会跳出包含该文件的文件夹

- 使用记事本、VSCode 或者其他编辑器打开该文件,输入以下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17SetStoreCapslockMode, 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 可以实现改键的功能,但是没有长短按的效果区分
本文作者: SuburbiaXX
本文链接: https://suburbiaxx.fun/posts/772cd73e/
版权声明: 本博客在未特别注明下默认使用 CC BY-NC-SA 4.0 许可协议。

