无忧启动论坛

标题: 有大佬能弄个修改windows键盘映射的批处理么? [打印本页]

作者: gnuxwy    时间: 2019-11-8 21:30
标题: 有大佬能弄个修改windows键盘映射的批处理么?
本帖最后由 gnuxwy 于 2019-11-10 11:29 编辑

前几天由于实际需要,想要修改下win的键盘映射,以与Gnux系统的键盘映射一致。

在网上找到一篇好文章,学会了这个手工修改少数键位的方法。
https://zhuanlan.zhihu.com/p/29581818

那篇文章的作者还提供了专门处理键位映射的 python 脚本。

不过,屮觉得 python 并非 windows  自带就有的工具软件,
如果在别的电脑上修改键盘映射,还得单独安装 python 工具包,多些麻烦事情。

所以,想请教论坛的批处理高手,能否直接用 windows 自带的批处理命令,
也能弄出一个修改 windows 键盘映射的小工具,这样就不必依赖额外的 python 软件包了。

请坛里高手,看过党国份上,拉兄弟一把。。。


呃,在各位大佬的指导下,问题完美解决:

1、可以用 liuzhaoyzz 坛友提供的小工具生成 xxyyzz.reg   然后导入注册表,
----此法适合自己用的电脑,永久性改变键位映射。

2、如果需要在别人的电脑上临时改变键位布局,可以用 pluv 坛友提到的 AutoHotKey 软件弄脚本。
----这个软件要学习脚本才能用的,屮也正在学习中。不过文档页面很友好,可以选中文页面看文档。

AutoHotKey 软件的官网文档,有意自阅:
https://wyagd001.github.io/zh-cn/docs/Tutorial.htm




作者: hilsonma    时间: 2019-11-8 22:15
本帖最后由 hilsonma 于 2019-11-8 22:32 编辑

更改
reg import d:\scancodemap.reg
还原
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ScanCode Map"

将你要的映射写到scancodemap.reg

这个文件有点繁琐,你自己做。
这个功能用途不广,没有必要写成程序,自己做一下注册表文件导入就可以了。

提示:文章中的源码,其中的scan_code_dict 就是键盘扫描码表,可以复制到表格软件中,做好映射对应后再将扫描映射复制到注册表文件中。
作者: liuzhaoyzz    时间: 2019-11-8 22:46
何必呢,直接keybmap,想怎么改就怎么改,可以导出到注册表reg文件保存起来,可以恢复,可以转换为批处理。

keybmap v1[1].3 单文件绿色版.rar

31.08 KB, 下载次数: 51, 下载积分: 无忧币 -2


作者: gnuxwy    时间: 2019-11-8 23:25
多谢楼上各位大佬的指点,屮去试试看。。。

作者: gnuxwy    时间: 2019-11-8 23:37
hilsonma 发表于 2019-11-8 22:15
更改
reg import d:\scancodemap.reg
还原

大佬的意思氏,就用文章中给出的 python 工具制作一份 scancodemap.reg 文件,然后再导入注册表?



作者: hilsonma    时间: 2019-11-8 23:59
gnuxwy 发表于 2019-11-8 23:37
大佬的意思氏,就用文章中给出的 python 工具制作一份 scancodemap.reg 文件,然后再导入注册表?

我的意思是手工做一份注册表文件然后导入。
不过现在不需要了,liuzhaoyzz 已经提供了现成的工具,你直接使用好了。
作者: 黑中见白    时间: 2019-11-9 00:44
用ahk?
作者: plusv    时间: 2019-11-9 05:52
本帖最后由 plusv 于 2019-11-9 07:21 编辑

>如果在别的电脑上修改键盘映射

用 REG 方法需重启 PC 不方便.
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ScanCode Map

用 AHK 比较好,
将 AHK 转成 EXE 运行,实时生效.
可携方便.
作者: nttwqz    时间: 2019-11-9 10:36
Python有pyinstaller可以“编译”成应用程序

cmd中输入pip install pyinstaller安装

然后,pyinstaller -F -w app.py

见的的可以,太麻烦的不行
作者: liuzhaoyzz    时间: 2019-11-9 11:28
plusv 发表于 2019-11-9 05:52
>如果在别的电脑上修改键盘映射

用 REG 方法需重启 PC 不方便.

确实注册表不能实时生效,必须要重启下。也还可以了,reg的好处是没有任何资源消耗。
作者: plusv    时间: 2019-11-9 11:42
liuzhaoyzz 发表于 2019-11-9 11:28
确实注册表不能实时生效,必须要重启下。也还可以了,reg的好处是没有任何资源消耗。

因为楼主需要"如果在别的电脑上修改键盘映射".

用 REG 把它改了,其它用户不见得习惯.

所以用 AHK 方法,只要 运行/不运行 EXE, 立马 有/无 效果.

PS:
AHK 用的是 HOOK 方法,所以立马有效.

SetWindowsHookExW
CallNextHookEx

UnhookWindowsHookEx

作者: liuzhaoyzz    时间: 2019-11-9 15:21
reg可以导入导出啊,就是把来的键盘布置保存到配置1.reg,修改后的键盘布置保存到配置2.reg,随时可以恢复原来的。
作者: plusv    时间: 2019-11-9 15:49
若楼主用 REG 方法

Loop:
REG 导入
PC 重启
若不是自己的电脑用完后,
REG 导入恢复
PC 重启
Goto Loop

这太折腾了.

作者: hilsonma    时间: 2019-11-9 16:47
liuzhaoyzz 发表于 2019-11-9 15:21
reg可以导入导出啊,就是把来的键盘布置保存到配置1.reg,修改后的键盘布置保存到配置2.reg,随时可以恢复 ...

我开始也是想着一个修改,一个还原,后来想到只要删除键值就可以还原了。

不过现在应该是 plusv 说的 ahk 更适用。
作者: gnuxwy    时间: 2019-11-10 11:21
多谢大佬们的各种回复指导。。。

我开始也是想着一个修改,一个还原,后来想到只要删除键值就可以还原了。

不过现在应该是 plusv 说的 ahk 更适用。



屮已经在本机上使用 liuzhaoyzz 坛友提供的小工具生成 wb99ghmf.reg ,直接改了注册表。

但氏 plusv 坛友说得太对了,如果在用别人的电脑时也这样弄注册表,既麻烦自己,也麻烦别人。
还氏那个 ahk 很适合临时改变键位映射。。。

去 autoHotKey 的官网看了,很友好啊,文档还有中文页面,正在学习中,学会了就在虚机中先试试。
玩熟了,以后再在别人的电脑上临时操作时,就可以用这种方法保持自己的手指习惯了。。。

多谢各位大佬,此贴完美收官,屮马上改标题‘已解决’。







作者: lbw2007    时间: 2019-12-3 22:41
没有组合按键吗?键盘按钮不够用了,什么Print screen、Scroll Lock、Pause都是常用按钮。没法用音量增减了……




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3