1. 程式人生 > >通過登錄檔修改鍵盤

通過登錄檔修改鍵盤

本人電腦聯想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