You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NumLock开启时通过AutoHotKey将字母键重映射为数字键的实现方法

可行性结论

AutoHotkey原生支持NumLock状态检测,完全可以实现你要的按键映射效果,不需要额外安装工具。

实现原理

AHK内置的GetKeyState函数可以直接读取系统层面的NumLock开关状态,不需要捕获你笔记本上切换NumLock的Fn+B组合键——Fn+B触发NumLock切换后,系统本身会更新对应的状态标记,AHK直接读取这个系统标记即可,不管你通过什么方式切换NumLock(笔记本快捷键、外接键盘按NumLock、系统屏幕键盘点击),检测逻辑都能正常生效,稳定性远高于尝试监听Fn按键。

可直接运行的代码(AHK v1 主流版本)
; NumLock开启时将对应按键映射为小键盘数字,关闭时保持按键原有功能
#If GetKeyState("NumLock", "T")
m::0
j::1
k::2
l::3
u::4
i::5
o::6
#If
代码说明
  • 首尾的#If是AHK的条件热键标记,中间的映射规则仅在#If后附带的条件成立时生效
  • GetKeyState("NumLock", "T")的作用是实时读取NumLock的切换状态,参数T表示读取按键的系统切换状态,而非瞬时按下状态
  • 中间的映射行严格对应需求规则:M对应0、J/K/L对应1/2/3、U/I/O对应4/5/6
  • 最后一行空的#If用于关闭条件作用域,避免后续添加的其他热键规则被误加生效条件

避坑提示:不要尝试编写监听Fn+B的热键来手动维护NumLock状态标记,绝大多数消费级笔记本的Fn键是硬件层面透传给EC芯片处理的,不会向系统上报可被AHK捕获的按键码,强行监听只会出现状态不同步的问题。

效果验证

脚本运行后,按Fn+B切换NumLock状态时,映射会自动同步生效/失效,和系统屏幕键盘上显示的NumLock状态完全对齐,和自带实体小键盘的笔记本开启NumLock后的使用逻辑一致。

效果示意


内容的提问来源于stack exchange,提问作者Qwerty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 18:45:32