1
2
3
4
5
6
7 """Maps between Windows virtual key (vk) codes and NVDA key names.
8 These names are used when binding keyboard gestures to scripts.
9 """
10
11
12
13
14
15
16
17
18 byCode = {
19 (0x01, None): "leftMouse",
20 (0x02, None): "rightMouse",
21 (0x03, None): "break",
22 (0x04, None): "middleMouse",
23 (0x08, None): "backspace",
24 (0x09, None): "tab",
25 (0x0C, None): "numpad5",
26 (0x0D, False): "enter",
27 (0x0D, True): "numpadEnter",
28 (0x10, None): "shift",
29 (0x11, None): "control",
30 (0x12, None): "alt",
31 (0x13, None): "pause",
32 (0x14, None): "capsLock",
33 (0x18, None): "IMEFinalMode",
34 (0x1B, None): "escape",
35 (0x1C, None): "IMEConvert",
36 (0x1D, None): "IMENonconvert",
37 (0x1E, None): "IMEAccept",
38 (0x1F, None): "IMEModeChange",
39 (0x20, None): "space",
40 (0x21, True): "pageUp",
41 (0x21, False): "numpad9",
42 (0x22, True): "pageDown",
43 (0x22, False): "numpad3",
44 (0x23, True): "end",
45 (0x23, False): "numpad1",
46 (0x24, True): "home",
47 (0x24, False): "numpad7",
48 (0x25, True): "leftArrow",
49 (0x25, False): "numpad4",
50 (0x26, True): "upArrow",
51 (0x26, False): "numpad8",
52 (0x27, True): "rightArrow",
53 (0x27, False): "numpad6",
54 (0x28, True): "downArrow",
55 (0x28, False): "numpad2",
56 (0x29, None): "select",
57 (0x2A, None): "print",
58 (0x2B, None): "execute",
59 (0x2C, None): "printScreen",
60 (0x2D, True): "insert",
61 (0x2D, False): "numpadInsert",
62 (0x2E, True): "delete",
63 (0x2E, False): "numpadDelete",
64 (0x2F, None): "help",
65 (0x5B, None): "leftWindows",
66 (0x5C, None): "rightWindows",
67 (0x5D, None): "applications",
68 (0x5F, None): "sleep",
69 (0x60, None): "numLockNumpad0",
70 (0x61, None): "numLockNumpad1",
71 (0x62, None): "numLockNumpad2",
72 (0x63, None): "numLockNumpad3",
73 (0x64, None): "numLockNumpad4",
74 (0x65, None): "numLockNumpad5",
75 (0x66, None): "numLockNumpad6",
76 (0x67, None): "numLockNumpad7",
77 (0x68, None): "numLockNumpad8",
78 (0x69, None): "numLockNumpad9",
79 (0x6A, None): "numpadMultiply",
80 (0x6B, None): "numpadPlus",
81 (0x6C, None): "numpadSeparator",
82 (0x6D, None): "numpadMinus",
83 (0x6E, None): "numpadDecimal",
84 (0x6F, None): "numpadDivide",
85 (0x70, None): "f1",
86 (0x71, None): "f2",
87 (0x72, None): "f3",
88 (0x73, None): "f4",
89 (0x74, None): "f5",
90 (0x75, None): "f6",
91 (0x76, None): "f7",
92 (0x77, None): "f8",
93 (0x78, None): "f9",
94 (0x79, None): "f10",
95 (0x7A, None): "f11",
96 (0x7B, None): "f12",
97 (0x7C, None): "f13",
98 (0x7D, None): "f14",
99 (0x7E, None): "f15",
100 (0x7F, None): "f16",
101 (0x80, None): "f17",
102 (0x81, None): "f18",
103 (0x82, None): "f19",
104 (0x83, None): "f20",
105 (0x84, None): "f21",
106 (0x85, None): "f22",
107 (0x86, None): "f23",
108 (0x87, None): "f24",
109 (0x90, None): "numLock",
110 (0x91, None): "scrollLock",
111 (0xA0, None): "leftShift",
112 (0xA1, None): "rightShift",
113 (0xA2, None): "leftControl",
114 (0xA3, None): "rightControl",
115 (0xA4, None): "leftAlt",
116 (0xA5, None): "rightAlt",
117 (0xA6, None): "browserBack",
118 (0xA7, None): "browserForward",
119 (0xA8, None): "browserRefresh",
120 (0xA9, None): "browserStop",
121 (0xAA, None): "browserSearch",
122 (0xAB, None): "browserFavorites",
123 (0xAC, None): "browserHome",
124 (0xAD, None): "volumeMute",
125 (0xAE, None): "volumeDown",
126 (0xAF, None): "volumeUp",
127 (0xB0, None): "mediaNextTrack",
128 (0xB1, None): "mediaPrevTrack",
129 (0xB2, None): "mediaStop",
130 (0xB3, None): "mediaPlayPause",
131 (0xB4, None): "launchMail",
132 (0xB5, None): "launchMediaPlayer",
133 (0xB6, None): "launchApp1",
134 (0xB7, None): "launchApp2",
135 }
136
137
138
139
140
141 byName = dict((name.lower(), code) for code, name in byCode.iteritems())
142