待解决的问题:

在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. php 通用数据库类

    <?php // 数据库连接类 class DB{ //私有的属性 private static $dbcon=false; private $host; private $port; priv ...

  2. [CC-BSTRLCP]Count Binary Strings

    [CC-BSTRLCP]Count Binary Strings 题目大意: 对于一个长度为\(n\)的\(\texttt0/\texttt1\)串\(S\),如果存在一个切分\(i\),使得\(S_ ...

  3. bzoj3376/poj1988[Usaco2004 Open]Cube Stacking 方块游戏 — 带权并查集

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3376 题目大意: 编号为1到n的n(1≤n≤30000)个方块正放在地上.每个构成一个立方 ...

  4. 多角度对比 ES5与ES6的区别

    ES5与ES6的对比不同点整理 本文关键词:ES6,javascript, 1.Default Parameters(默认参数) es6之前,定义默认参数的方法是在一个方法内部定义 var link ...

  5. splinter

    # coding:utf-8 import tornado.web import tornado.options import tornado.httpserver import tornado.io ...

  6. 9、js扩展

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理. 本片导航: js的作用域 作用域链(Scope Chain) 一. ...

  7. Mac上安装mysql-mython错误:mysql_config not found

    1.正确安装MySQL 2.配置环境变量 export PATH="$PATH":/usr/local/mysql/bin 3.重启终端再进行安装 pip install mysq ...

  8. 【经典】5种IO模型 | IO多路复用

    上篇回顾:静态服务器+压测 3.2.概念篇 1.同步与异步 同步是指一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成. 异步是指不需要等待被依赖的任务完成,只是通 ...

  9. gpg使用说明

    http://blog.163.com/ywz_306/blog/static/13257711201121921452480/

  10. OHDSI——数据标准化

    Home › Data Standardization Data Standardization Data standardization is the critical process of bri ...