通過登錄檔修改鍵盤
本人電腦聯想E550,出於程式設計師的職業實在無法忍受Home與End鍵不與方向鍵挨在一起,而與方向鍵挨著的是PgUp和PgDn。經過研究,瞭解到可以通過修改登錄檔檔案來修改鍵盤按鍵。有兩種方法可以完美解決這個問題,不過這兩種方法的本質是一樣的。
方法一:手動修改登錄檔來改鍵
普及一個概念:鍵盤掃描碼
鍵盤上的每一個鍵都有兩個唯一的數值進行標誌。為什麼要用兩個數值而不是一個數值呢?這是因為一個鍵可以被按下,也可以被釋放。當一個鍵按下時,它們產生一個唯一的數值,當一個鍵被釋放時,它也會產生一個唯一的數值,我們把這些數值都儲存在一張表裡面,到時候通過查表就可以知道是哪一個鍵被敲擊,並且可以知道是它是被按下還是被釋放了。這些數值在系統中被稱為鍵盤掃描碼。我們要改的就是對應鍵的鍵盤掃描碼。登錄檔中的Scancode Map(掃描對映)可以是我們隨意的修改鍵盤上的按鍵。
“Scancode Map”是登錄檔中[HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]中的一個二進位制鍵值(預設沒有,需新建),並且有固定的格式。
Scancode Map 程式碼的一般格式是:
“hex:00,00,00,00,00,00,00,00,|02|,00,00,00,|對映之後的掃描碼(XX XX),原掃描碼(XX XX)|00,00,00,00”。
其含義為:
前8個00(DWord兩個0)是版本號和頭部位元組,
接下來的“02”表示對映數,其最小為值為“02”,表示只對映一組(這裡的數值是對映數目加上末尾用作結尾的“00,00,00,00”,因此總是比實際的對映數目大一),若要對映多組,只需增加相應的值即可,如對映2組其值應為“03”,3組為“04”。
後邊程式碼每4個是一組:前兩個是對映後鍵位的掃描碼,後兩個是鍵位原掃描碼。如果要交換兩個鍵,則一個有兩組對映,四個值的排列形式是:鍵A,鍵B,鍵B,鍵A——它表示:鍵A成為鍵B,鍵B成為鍵A。
最後以“00,00,00,00” 結尾。
注意:在登錄檔中輸入時,需要將掃描碼的高低位元組交換一下。
另外,如果想要某個鍵失效,將它的掃描碼對映為“00 00”即可。
舉例:我是把“Home”和“End”兩個按鍵對映為“PgUp”和“PgDn”,登錄檔檔案如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,47,e0,49,e0,4F,e0,51,e0,00,00,00,00
修改之後重啟計算機即可。
注意:如果自己手動去登錄檔下新建,要新建二進位制值。
方法二:通過改鍵軟體來修改
軟體名為KeyTweak,軟體不大,使用方法也很簡單,這裡不做贅述。其基本原理也是通過你選擇要修改的按鍵,然後軟體幫你把修改的鍵盤掃描碼寫到登錄檔。
若要恢復鍵盤鍵位原來的佈局,只需定位於登錄檔[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout],刪除"Scancode Map"鍵值。
ps:下面為比較全的鍵盤掃描碼,可以作為修改參考。
Backspace 00 0E
Caps Lock 00 3A
Delete E0 53
End E0 4F
Enter 00 1C
Escape 00 01
HOME E0 47
Insert E0 52
Left Alt 00 38
Left Ctrl 00 1D
Left Shift 00 2A
Left Windows E0 5B
Num Lock 00 45
Page Down E0 51
Page Up E0 49
Power E0 5E
PrtSc E0 37
Right Alt E0 38
Right Ctrl E0 1D
Right Shift 00 36
Right Windows E0 5C
Scroll Lock 00 46
Sleep E0 5F
Space 00 39
Tab 00 0F
Wake E0 63
0 00 52
1 00 4F
2 00 50
3 00 51
4 00 4B
5 00 4C
6 00 4D
7 00 47
8 00 48
9 00 49
- 00 4A
* 00 37
. 00 53
/ 00 35
+ 00 4E
Enter E0 1C
F1 00 3B
F2 00 3C
F3 00 3D
F4 00 3E
F5 00 3F
F6 00 40
F7 00 41
F8 00 42
F9 00 43
F10 00 44
F11 00 57
F12 00 58
F13 00 64
F14 00 65
F15 00 66
Down E0 50
Left E0 4B
Right E0 4D
Up E0 48
Calculator E0 21
E-Mail E0 6C
Media Select E0 6D
Messenger E0 11
My Computer E0 6B
' " 00 28
- _ 00 0C
, < 00 33
. > 00 34
/ ? 00 35
; : 00 27
[ { 00 1A
\ | 00 2B
] } 00 1B
` ~ 00 29
= + 00 0D
0 ) 00 0B
1 ! 00 02
2 @ 00 03
3 # 00 04
4 $ 00 05
5 % 00 06
6 ^ 00 07
7 & 00 08
8 * 00 09
9 ( 00 0A
A 00 1E
B 00 30
C 00 2E
D 00 20
E 00 12
F 00 21
G 00 22
H 00 23
I 00 17
J 00 24
K 00 25
L 00 26
M 00 32
N 00 31
O 00 18
P 00 19
Q 00 10
R 00 13
S 00 1F
T 00 14
U 00 16
V 00 2F
W 00 11
X 00 2D
Y 00 15
Z 00 2C
Close E0 40
Fwd E0 42
Help E0 3B
New E0 3E
Office Home E0 3C
Open E0 3F
Print E0 58
Redo E0 07
Reply E0 41
Save E0 57
Send E0 43
Spell E0 23
Task Pane E0 3D
Undo E0 08
Mute E0 20
Next Track E0 19
Play/Pause E0 22
Prev Track E0 10
Stop E0 24
Volume Down E0 2E
Volume Up E0 30
? - 00 7D
E0 45
Next to Enter E0 2B
Next to L-Shift E0 56
Next to R-Shift E0 73
DBE_KATAKANA E0 70
DBE_SBCSCHAR E0 77
CONVERT E0 79
NONCONVERT E0 7B
Internet E0 01
iTouch E0 13
Shopping E0 04
Webcam E0 12
Back E0 6A
Favorites E0 66
Forward E0 69
HOME E0 32
Refresh E0 67
Search E0 65
Stop E0 68
My Pictures E0 64
My Music E0 3C
Mute E0 20
Play/Pause E0 22
Stop E0 24
+ (Volume up) E0 30
- (Volume down) E0 2E
|<< (Previous) E0 10
>>| (Next) E0 19
Media E0 6D
Mail E0 6C
Web/Home E0 32
Messenger E0 05
Calculator E0 21
Log Off E0 16
Sleep E0 5F
Help(on F1 key) E0 3B
Undo(on F2 key) E0 08
Redo(on F3 key) E0 07
Fwd (on F8 key) E0 42
Send(on F9 key) E0 43