用AutoHotKey 和 Keybmap修改键盘映射

因为对键盘有一些想法。所以想对Tada68布局里右边一列设置为Delete、Home、Fn、End;

对魔蛋68的PgUp、PgDn,改为Home、End。(刚好把按Fn和不按Fn的键值反一下)

对于Tada68 Pro,下载了自定义程序试了一下,好像不能改成我想的那样。
对于魔蛋68,官方只支持DIP设置几个比如Ctrl和CapsLock互换等,不能自定义键值。

我再就只想到自己写/抄一个键盘驱动,把键盘发过来的键值转换一下再发给操作系统。这样就可以达到我的要求了。
本来想放弃了后来想到利用AHK替换键值。后来在查找AHK资料的时候找到了直接修改注册表的方法。然后搜到了一个叫Keybmap的小软件。(PS: 在此之前找到一个叫KeyTweak的软件,在我的Win10下面不能用,一运行就弹窗报错)


从Keybmap的原理上说,只能把Windows认得的键值进行映射,里面除了全键盘键以外(左右Ctrl Shift Alt Win是不同的),还有一些 Power WakeUP Sleep这种,还有WWWHome WWWSearch WWWRefresh 这种(想起了90年代的“多媒体键盘”) 。那么对于各种压缩键盘上的Fn键就不支持了(这个Fn键是存在于键盘物理层面,对操作系统来说肯定看不到)
于是我的原始需求里,对68键的改造就不能用Keybmap实现了。
还有就是,对于压缩了的键盘(包括笔记本的键盘),Keybmap的扫描键值的功能有时候不对。比如,笔记本的【方向键上】,扫描出来是“方向键右”;Race的【Home】,扫描出来是“Power”。当然,为了完成任务,直接在软件里指定键值还是可以正常生效的。
用Keybmap试了一下PgUp -> Home 和 Home->PgUp同时生效。
是我的想要的效果。

Keybmap的原理是修改注册表,修改生效需要注销或重启,再说从我的使用场景来说,如果不用魔蛋68键盘的时候就要修改回去再注销/重启一下吗?还是AHK实现比较方便,想开就开想关就关。

换AHK来实现,脚本写成这样:
右键运行,效果也达到了。

我还想到一个:实现 Ctrl + 【小键盘“+”】,快速调整全部分列宽度。自从用压缩键盘以后就一直没用这个快捷键了。在用详细内容视图浏览文件夹的时候,还是很有用的。
脚本写成这样:
Win + 【=键】就实现了 Ctrl + 【小键盘“+”】
不过,实测只在文件浏览器里有效。在比如任务管理器的列表界面或者Everything的搜索结果页面就不能起到104键盘的Ctrl + 【小键盘“+”】的效果。

参考:
https://ahkcn.github.io/docs/misc/Remap.htm

====== 2019/01/25 =====
用了一段时间凯酷84,右边的Del Home PgUp PgDn End,还有独立的方向键都挺合适。就差独立的Insert键了(终端里面复制粘贴要用到)。
想把Pause/Scrlk换成Insert,结果这颗键很特殊,种方法均失败:
1. 在KeybMap里不支持。
2. 在AHK里面,能把Pause换成Insert,平时按Pause也能生成Insert的功能。但是在终端工具(如:Xshell)里面使用Ctrl+这颗键=Ctrl+Pause/Break,是算作和Ctrl+C一样效果的,AHK没起作用。

评论

  1. 我用的是tada 68 pro,完美的解决了没有没有home,end键的问题,我也是ahk使用者,感谢你的ahk的方法,牛逼

    回复删除

发表评论

The Hot3 in Last 30 Days

无服务器 自建短链服务 Url-Shorten-Worker 完整的部署教程

ClouDNS .asia免费域名 托管到CloudFlare开CDN白嫖Websocket WS通道翻墙 / desec.io