待解决的问题:

在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. 初窥Java--2(下载Eclipse,安装tomcat插件)

    一.软件下载 Eclipse3.6 IDE for Java EE Developers: 下载地址:http://eclipse.org/downloads/ Tomcat Eclipse Plug ...

  2. HTML(二)

    html段落.换行与字符实体 html段落 <p>标签定义一个文本段落,一个段落含有默认的上下间距,段落之间会用这种默认间距隔开,代码如下: <!DOCTYPE html> & ...

  3. 分金币 [CQOI 2011] [BZOJ 3293]

    Description 圆桌上坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数目相等.你的任务是求出被转手的金币数量的最小值. Inpu ...

  4. 2017.07.06【NOIP提高组】模拟赛B组

    Summary 今天比赛感觉题目很奇葩,都可以用许多简单方法来做,正确性都显然,当然也有点水,也就是说是考我们的数感和数学知识,而程序,只是代码的体现. 这次的时间安排感觉不错,因为很快就打完最后一道 ...

  5. Unity安装破解

    最近,电脑重新安装的系统,然后的然后就是软件之类的都要重新安装 一.在unity官网下载对应版本对应系统,之后双击下载得到的.exe可执行文件. 二.选择对应的包和引擎安装的本地路径,等待安装完成. ...

  6. python之抽象类

    1什么是抽象类 与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 2为什么要有抽象类 如果说类是从一堆对象中抽取相同 ...

  7. JS的document.all函数使用示例

    JS的document.all函数虽然被document.getElement......代替,但是在使用中还是较为常见,下面为大家详细介绍下具体的使用示例: 一: document.all是页面内所 ...

  8. JDBC(9)—事务(Transaction)

    数据库事务:在数据库中所谓事务是指一组逻辑操作单元,使数据从一种状态转换到另一种状态.为确保数据库中的数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这些 ...

  9. pip的基本使用

    pip的基本使用 1.pip简介 pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能 pip是官方推荐的安装和管理Python包的工具,用 ...

  10. Apache Kafka 快速入门

    概述 Apache Kafka是一个分布式发布-订阅消息系统和强大的队列,可以处理大量的数据,将消息从一个端点传递到另一个端点.Kafka适合离线和在线消息消费,Kafka消息保存在磁盘上,并在集群内 ...