待解决的问题:

在windows系统下,在某些情况下,我们感觉键盘的按键位置不是特别方便,因此想重新映射它。

比如:要实现如下重新映射(我就有这样的需求),怎么办?

Esc键                  修改为        CapsLock键
CapsLock键      修改为 左Shift键
左Shift键    修改为 左ctrl键
左ctrl键 修改为    左alt键
左alt键 修改为    Esc键
Enter键 修改为    右Shift键
右Shift键 修改为    Enter键

解决之道:

打开浏览器,进行百度!

哦,原来已经有人来解决了。。。。比如:

http://www.cnblogs.com/Rainr/archive/2012/01/21/2328046.html(该链接里面的步骤例子比较好)

http://blog.chinaunix.net/uid-174325-id-3912617.html( 该链接里面的按键扫描码值比较好, 使用小端模式表示的,可以直接使用)

再重新描述一下方法:

第一步:按 windows + R, 输入 regedit, 打开注册表。

第二步: 找到:HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Keyboard Layout 下。

第三步:右键新建二进制值,名字为Scancode Map。

第四步:右键名字Scancode Map, 选择修改二进制值, 输出 XXXX, 完成。

第五步: 重启电脑, 修改生效。

XXXX 的格式为:

1.  二进制值使用16进制表示,并且使用小端格式(即低位在前,高位在后,例如32位系统的16进制0xab002301,在小端模式下表示为:012300ab)。

2. 前8个字节为版本信息号,使用 00 00 00 00 00 00 00 00  表示。

3. 接下来4个字节表示你修改的映射的个数。修改一个映射表示为 02 00 00  00(从2开始),修改两个映射表示为03 00 00 00,等等。

4. 接下来的 4 * n 个字节表示你修改的映射(其中n 表示你修改的映射的数目)。 4个字节的前2个字节表示映射后的按键扫描码,后2个字节表示你映射前的按键扫描码。

5. 最后使用4个字节的 00 00 00 00 结束 。

举例:

有如下按键的扫描码的值(使用小商模式下表示的):

1. Esc键的扫描码为 0100, CapsLock键的扫描码为3A00, 回车键的扫描码为1C00, 右ctrl的扫描码为1DE0。

把Esc键映射为CapsLock键:

00 00 00 00 00 00 00 00 02 00 00 00 3A 00 01 00  00 00 00 00

2. 把Esc键映射为CapsLock键, 把回车键映射为右Shift键:

00 00 00 00 00 00 00 00 03 00 00 00 3A 00 01 00  36 00 1C 00 00 00 00 00

3. 文章开头描述的按键重新映射的二进制值为:

00 00 00 00 00 00 00 00 08 00 00 00 3A 00 01 00 2A 00 3A 00  1D 00 2A 00 38 00 1D 00 01 00 38 00 36 00 1C 00 1C 00 36 00 00 00 00 00

OK, 搞定!

如果想知道linux下的键盘重新映射方法,请看之前我写的: linux系统下键盘按键的重新映射——xmodmap工具和xev工具

windows系统下修改键盘按键的映射的更多相关文章

  1. Windows系统下修改Erlang默认路径

    新建.erlang文件: io:format("consulting .erlang in ~p~n",[element(2, file:get_cwd())]). c:cd(&q ...

  2. windows系统下简单nodej.s环境配置 安装

    国内目前关注最高,维护最好的一个关于nodejs的网站应该是http://www.cnodejs.org/ windows系统下简单nodejs环境配置. 第一步:下载安装文件 下载地址:官网 htt ...

  3. windows系统下安装MySQL

    可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...

  4. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  5. PHP-5.5.10+Apache httpd-2.4.9在Windows系统下配置实战

    原文 PHP-5.5.10+Apache httpd-2.4.9在Windows系统下配置实战 环境配置:   程序准备: PHP windows版本下载地址: http://windows.php. ...

  6. Windows系统下Nginx的安装与配置

    Nginx是lgor Sysoev在2004年的时候为俄罗斯访问量第二大的rambler.ru站点设计开发的,发布至今,凭借开源的力量,已经接近成熟与完善.其功能丰富,可作为HTTP服务器,也可作为反 ...

  7. Windows系统下的TCP参数优化(注册表\TCPIP\Parameters)

    转自:https://blog.csdn.net/libaineu2004/article/details/49054261 Windows系统下的TCP参数优化   TCP连接的状态与关闭方式及其对 ...

  8. Tomcat Windows 系统下安装及注意事项

    1 获取Tomcat 安装包  http://tomcat.apache.org/ tar.gz 文件是Linux系统下的安装版本 exe文件是 Windows系统下的安装版本 zip 文件是Wind ...

  9. windows系统下简单nodejs安装及环境配置

      相信对于很多关注javascript发展的同学来说,nodejs已经不是一个陌生的词眼,这里不想谈太多的nodejs的相关信息.只说一下,windows系统下简单nodejs环境配置     相信 ...

随机推荐

  1. js加密php解密---jsencrypt

    原理:javascript加密PHP解密: 完全依赖openssl: 一. openssl 是干嘛的 它集成了众多密码算法及实用工具 rsa加密流程:(今天只讲众多加密方式中的一种) 1. 在当前文件 ...

  2. c# 后台绑定treeview 单个tab

    <wijmo:C1TreeView ID="C1TreeView1" runat="server" ShowCheckBoxes="true&q ...

  3. Idea-每次修改JS文件都需要重启Idea才能生效解决方法

    最近开始使用Idea,有些地方的确比eclipse方便.但是我发现工程每次修改JS或者是JSP页面后,并没有生效,每次修改都需要重启一次Tomcat这样的确不方便.我想Idea肯定有设置的方法,不可能 ...

  4. Aizu0121 Seven Puzzle(bfs+康托展开)

    https://vjudge.net/problem/Aizu-0121 比八数码要水的多,bfs. 但是做的时候我把康托展开记错了,wa了好几次. 附上康托展开博客详解:https://blog.c ...

  5. hihocoder1696 折线中点(几何)

    https://hihocoder.com/problemset/problem/1696 求折线中点,一开始想成先求横坐标中点了,肯定是错的. 一定要从线段长度求中点,然后中点公式推了好久.. #i ...

  6. C#异步Task编程模型实战手册

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...

  7. Why validation set ?

    Let's assume that you are training a model whose performance depends on a set of hyperparameters. In ...

  8. Coursera机器学习+deeplearning.ai+斯坦福CS231n

    日志 20170410 Coursera机器学习 2017.11.28 update deeplearning 台大的机器学习课程:台湾大学林轩田和李宏毅机器学习课程 Coursera机器学习 Wee ...

  9. ValueError: output parameter for reduction operation logical_and has too many dimensions ?

    https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.all.html#numpy.all 运行示例,却发生错误 import ...

  10. MySQL 的 autocommit

    在自动提交模式(autocommit=ON)下提交事务: •在自动提交模式下,每个SQL语句都是一个独立的事务. –mysql>insert into ACCOUNTS values(1,'To ...