windows系統下修改鍵盤按鍵的映射


待解決的問題:

在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工具。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM