출처: http://yuno.tistory.com/87

(참고로 이 글의 모든 내용은 KeyTweak 이라는 프로그램을 사용하면 간편하게 설정할 수 있음
http://yuno.tistory.com/64)


HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layout

의 주소에 다음과 같은 이름의 REG_BINARY 타입의 값을 추가한다.
 
Scancode Map

이 맵의 문법은 다음과 같다.

시작: 00 00 00 00   00 00 00 00   NN 00 00 00 (NN 은 변경할 스캔코드 값의 개수 + 1, 16진수)

본문: AA AA BB BB (BB BB에 해당하는 스캔코드를 AA AA로 매핑함(AT scancode가 아닌 XT scancode),
                             단 여기서 E0가 붙는 경우 앞쪽이 아닌 뒷쪽에 붙인다. 예 51 E0 (PgDn)
                             E0가 붙지 않는 경우 뒤의 두 자리는 00 으로 둔다. 예 3A 00 (CapsLock))

        와 같은 4 byte 문장들이 위 시작부에서 지정한 NN - 1 번 반복된다.

종결: 00 00 00 00


사용예:

CapsLock 키를 LCtrl로 매핑
(첫번째 열은 주소값(16진수), 자동입력됨)
0000    00 00 00 00    00 00 00 00    : 시작
0008    02 00 00 00    1D 00 3A 00   : 1 개의 스캔코드를 매핑할 것, 3A 00를 1D 00로 매핑
0010    00 00 00 00                       : 종결

사용자 삽입 이미지



조금 더 복잡한 예
0000    00 00 00 00    00 00 00 00    : 시작
0008    06 00 00 00    51 E0 4D E0   : 5 개의 스캔코드를 매핑할 것, 4D E0를 51 E0로 매핑                            
0010    49 E0 51 E0   47 E0 70 00    : 51 E0를 49 E0로 매핑, 70 00를 47 E0로 매핑
0018    4F E0 5D E0  4D E0 49 E0   : 5D E0를 4F E0로 매핑, 49 E0를 4D E0로 매핑
0020   00 00 00 00                        : 종결


키보드 스캔코드표:
from: http://www.barcodeman.com/altek/mule/scandoc.php

아래 표에서 그림에 해당하는 번호의 키의 XT scancode 값을 사용하면 된다.
(실제 키보드 하드웨어에서 보내는 값은 AT scancode이나 BIOS에서 이를 자동으로 XT로 변경하기 때문에
소프트웨어적으로 보이는 값은 XT scancode라고 한다.)

사용자 삽입 이미지

 

Key Num XT AT
1 29 0E
2 02 16
3 03 1E
4 04 26
5 05 25
6 06 2E
7 07 36
8 08 3D
9 09 3E
10 0A 46
11 0B 45
12 0C 4E
13 0D 55
15 0E 66
16 0F 0D
17 10 15
18 11 1D
19 12 24
20 13 2D
21 14 2C
22 15 35
23 16 3C
24 17 43
25 18 44
26 19 4D
27 1A 54
28 1B 5B
29 2B 5D
30 3A 58
31 1E 1C
32 1F 1B
33 20 23
34 21 2B
35 22 34
36 23 33
37 24 3B
38 25 42
39 26 4B
40 27 4C
41 28 52
42 2B 5D
43 1C 5A
44 2A 12
45 56 61
46 2C 1A
47 2D 22
48 2E 21
49 2F 2A
50 30 32
51 31 31
52 32 3A
53 33 41
54 34 49
55 35 4A
57 36 59
58 1D 14
60 38 11
61 39 29
62 E038 E011
64 E01D E014
75 E052 E070
76 E053 E071
79 E04B E06B
80 E047 E06C
81 E04F E069
83 E048 E075
84 E050 E072
85 E049 E07D
86 E051 E07A
89 E04D E074
90 45 77
91 47 6C
92 4B 6B
93 4F 69
95 E035 E04A
96 48 75
97 4C 73
98 50 72
99 52 70
100 37 7C
101 49 7D
102 4D 74
103 51 7A
104 53 71
105 4A 7B
106 4E 79
108 E01C E05A
110 01 76
112 3B 05
113 3C 06
114 3D 04
115 3E 0C
116 3F 03
117 40 0B
118 41 83
119 42 0A
120 43 01
121 44 09
122 57 78
123 58 07
124 E02AE037 E012E07C
125 46 7E
126 E11D45E1 1477F014
9DC5 F077


여기에 없는 키의 경우 프로그램을 이용하여 찾을 수 있다.
from: http://www.yahoworld.com/keybdmap.htm


설치하고 실행해서 키를 누르면 아래와 같이 뜨는데, 0xXX 에 해당하는 숫자가 앞자리이고,
오른쪽 칸이 비어있으면 00, 뭔가 나오면 그 뒤에 0을 붙인 것이 뒷자리가 된다.

사용자 삽입 이미지
39 00
사용자 삽입 이미지
49 E0


 

AND