USBキーボードのキーコード

新規作成 : 2002年3月14日

このページの最後に示す参考資料を元に、OADG109Aキーボードをおよび Apple Pro Keyboard (JIS) の USBキーコード(Usage Page / Usage ID) の対応表を作成してみました。(キー番号は、OADG テクニカル・リファレンス ハードウェア偏の番号を元に各 Usage ID との対応をとってあります。)


OADG109Aキーボード
キーボード図

キー番号図
キー番号図
※OADG テクニカル・リファレンス ハードウェア偏には、127〜129 のキー番号は使われていませんが、HID Usage Tables Version 1.11 で使われていましたので採用いたしました。

Apple Pro Keyboard (JIS)
キーボード図

キー番号図
キー番号図
※300番台および400番台のキー番号は、独自に定義した番号で一般性はありませんのてご注意ください。( 他のキー番号は OADG109Aキーボードと共通化しています。)


キー番号OADG109AキーボードApple Pro キーボード
(JIS配列)
Usage Name
(HID Usage Tables 1.11)
USB キーコード (hex)
Usage Page / Usage ID
1半角/全角-----Keyboard Grave Accent and Tilde07 / 35
21 !1 !Keyboard 1 and !07 / 1E
32 "2 "Keyboard 2 and @07 / 1F
43 #3 #Keyboard 3 and #07 / 20
54 $4 $Keyboard 4 and $07 / 21
65 %5 %Keyboard 5 and %07 / 22
76 &6 &Keyboard 6 and ^07 / 23
87 '7 'Keyboard 7 and &07 / 24
98 (8 (Keyboard 8 and *07 / 25
109 )9 )Keyboard 9 and (07 / 26
1100Keyboard 0 and )07 / 27
12- =- =Keyboard - and (underscore)07 / 2D
13^ ~^ ~Keyboard = and +07 / 2E
14¥ |¥ |Keyboard International307 / 89
15BackspaceDeleteKeyboard DELETE (Backspace)07 / 2A
16TabTabKeyboard Tab07 / 2B
17QQKeyboard q and Q07 / 14
18WWKeyboard w and W07 / 1A
19EEKeyboard e and E07 / 08
20RRKeyboard r and R07 / 15
21TTKeyboard t and T07 / 17
22YYKeyboard y and Y07 / 1C
23UUKeyboard u and U07 / 18
24IIKeyboard i and I07 / 0C
25OOKeyboard o and O07 / 12
26PPKeyboard p and P07 / 13
27@ `@ `Keyboard [ and {07 / 2F
28[ {[ {Keyboard ] and }07 / 30
29----------Keyboard \ and |07 / 31
30英数 Caps LockCaps LockKeyboard Caps Lock07 / 39
31AAKeyboard a and A07 / 04
32SSKeyboard s and S07 / 16
33DDKeyboard d and D07 / 07
34FFKeyboard f and F07 / 09
35GGKeyboard g and G07 / 0A
36HHKeyboard h and H07 / 0B
37JJKeyboard j and J07 / 0D
38KKKeyboard k and K07 / 0E
39LLKeyboard l and L07 / 0F
40; +; +Keyboard ; and :07 / 33
41: *: *Keyboard ‘ and “07 / 34
42] }] }Keyboard Non-US # and ~07 / 32
43EnterReturnKeyboard Return (ENTER)07 / 28
44Left ShiftLeft ShiftKeyboard LeftShift07 / E1
46ZZKeyboard z and Z07 / 1D
47XXKeyboard x and X07 / 1B
48CCKeyboard c and C07 / 06
49VVKeyboard v and V07 / 19
50BBKeyboard b and B07 / 05
51NNKeyboard n and N07 / 11
52MMKeyboard m and M07 / 10
53, <, <Keyboard, and <07 / 36
54. >. >Keyboard . and >07 / 37
55/ ?/ ?Keyboard / and ?07 / 38
56\ __Keyboard International107 / 87
57Right ShiftRight ShiftKeyboard RightShift07 / E5
58Left CtrlLeft ControlKeyboard LeftControl07 / E0
60Left AltLeft OptionKeyboard LeftAlt07 / E2
61SpacebarSpacebarKeyboard Spacebar07 / 2C
62Right AltRight OptionKeyboard RightAlt07 / E6
64Right CtrlRight ControlKeyboard RightControl07 / E4
75InsertHelpKeyboard Insert07 / 49
76DeleteDelete ForwardKeyboard Delete Forward07 / 4C
79Keyboard LeftArrow07 / 50
80HomeHomeKeyboard Home07 / 4A
81EndEndKeyboard End07 / 4D
83Keyboard UpArrow07 / 52
84Keyboard DownArrow07 / 51
85Page UpPage UpKeyboard PageUp07 / 4B
86Page DownPage DownKeyboard PageDown07 / 4E
89Keyboard RightArrow07 / 4F
90Num LockClearKeypad Num Lock and Clear07 / 53
91Keypad 7Keypad 7Keypad 7 and Home07 / 5F
92Keypad 4Keypad 4Keypad 4 and Left Arrow07 / 5C
93Keypad 1Keypad 1Keypad 1 and End07 / 59
95Keypad /Keypad /Keypad /07 / 54
96Keypad 8Keypad 8Keypad 8 and Up Arrow07 / 60
97Keypad 5Keypad 5Keypad 507 / 5D
98Keypad 2Keypad 2Keypad 2 and Down Arrow07 / 5A
99Keypad 0Keypad 0Keypad 0 and Insert07 / 62
100Keypad *Keypad *Keypad *07 / 55
101Keypad 9Keypad 9Keypad 9 and PageUp07 / 61
102Keypad 6Keypad 6Keypad 6 and Right Arrow07 / 5E
103Keypad 3Keypad 3Keypad 3 and PageDn07 / 5B
104Keypad .Keypad .Keypad . and Delete07 / 63
105Keypad -Keypad -Keypad -07 / 56
106Keypad +Keypad +Keypad +07 / 57
108Keypad EnterKeypad EnterKeypad ENTER07 / 58
110EscEscKeyboard ESCAPE07 / 29
112F1F1Keyboard F107 / 3A
113F2F2Keyboard F207 / 3B
114F3F3Keyboard F307 / 3C
115F4F4Keyboard F407 / 3D
116F5F5Keyboard F507 / 3E
117F6F6Keyboard F607 / 3F
118F7F7Keyboard F707 / 40
119F8F8Keyboard F807 / 41
120F9F9Keyboard F907 / 42
121F10F10Keyboard F1007 / 43
122F11F11Keyboard F1107 / 44
123F12F12Keyboard F1207 / 45
124Print Screen-----Keyboard PrintScreen07 / 46
125Scroll Lock-----Keyboard Scroll Lock07 / 47
126Pause-----Keyboard Pause07 / 48
127Left WindowsLeft CommandKeyboard Left GUI07 / E3
128Right WindowsRight CommandKeyboard Right GUI07 / E7
129Application-----Keyboard Application07 / 65
131無変換-----Keyboard International507 / 8B
132変換-----Keyboard International407 / 8A
133ひらがな カタカナ-----Keyboard International207 / 88
300-----F13Keyboard F1307 / 68
301-----F14Keyboard F1407 / 69
302-----F15Keyboard F1507 / 6A
303-----Keypad =Keypad =07 / 67
304-----Keypad , (Comma)Keypad Comma07 / 85
305-----英数Keyboard LANG207 / 91
306-----かな カナKeyboard LANG107 / 90
400-----Volume DecrementVolume Decrement0C / 00EA
401-----Volume IncrementVolume Increment0C / 00E9
402-----MuteMute0C / 00E2
403-----EjectEject0C / 00B8
備考
キー番号 1 のキーは、OADG109Aキーボードでは“半角/全角”キーで、HID Usage Table 1.11 では、Usage ID 0x94 (Keyboard LANG5) に“Zenkaku/Hankaku”キーの定義がありますが、"USB HID to PS/2 Scan Code Translation Table" では、Usage ID 0x94 の PS/2 スキャンコードが OADG109Aキーボードと異なるものに変換されるように定義されているので、Usage ID 0x94 (Keyboard LANG5) ではなく、Usage ID 0x35 (Keyboard Grave Accent and Tilde) を用いるようにしてあります。

キー番号 42 のキーについては、PS/2 や ADB のスキャンコードへの変換の際に、キー番号 29 と同じスキャンコードに変換されるようで、実際の製品で Usage ID として 0x32 が使われているのか、0x31 (キー番号 29) が使われているのかは、資料からだけからはわかりませせんでした。この資料では、素直にキー番号 (AT-101 Position) 42 の 0x32 を用いるようにしています。

Apple Pro Keyboard (JIS) 固有のキーについては、Darwin の AppleUSBKeyboard.kext, AppleUSBProKeyboard.kext のソースコードを調査し作成いたしました。

参考資料
PCオープン・アーキテクチャー推進協議会 (OADG)
OADG テクニカル・リファレンス ハードウェア偏
USB
HID Web Page
-- HID Usage Tables Version 1.11
Microsoft
Key Support, Keyboard Scan Codes, and Windows
-- Keyboard Scan Code Specification (self-extracting zip file in Microsoft(R) Word format)
-- "USB HID to PS/2 Scan Code Translation Table" in PDF format
Enhanced Keyboards and Windows