Модификаторы клавиатуры и специальные клавиши
Описание
Когда функциям Keyboard.write(), Keyboard.press() и Keyboard.release() передаётся печатаемый ASCII-символ в качестве аргумента, они имитируют нажатие соответствующих клавиш. Эти функции также могут обрабатывать ASCII-символы, требующие нажатия клавиши в сочетании с Shift или, на международных клавиатурах, AltGr. Например:
Keyboard.write('a'); // press and release the 'A' key
Keyboard.write('A'); // press Shift and 'A', then release both
Однако типичная клавиатура имеет множество клавиш, которые не соответствуют печатаемому ASCII-символу. Для имитации этих клавиш библиотека предоставляет набор макросов, которые можно передавать в качестве аргументов в Keyboard.write(), Keyboard.press() и Keyboard.release(). Например, комбинация клавиш Shift+F2 может быть сгенерирована так:
Keyboard.press(KEY_LEFT_SHIFT); // press and hold Shift
Keyboard.press(KEY_F2); // press and hold F2
Keyboard.releaseAll(); // release both
Обратите внимание, что для одновременного нажатия нескольких клавиш необходимо использовать Keyboard.press(), а не Keyboard.write(), так как последняя просто «нажимает» клавиши (нажимает и немедленно отпускает их).
Доступные макросы перечислены ниже.
Модификаторы клавиатуры
Эти клавиши предназначены для изменения обычного действия другой клавиши при одновременном нажатии.
Клавиша |
Шестнадцатеричное значение |
Десятичное значение |
Примечания |
|---|---|---|---|
KEY_LEFT_CTRL |
0x80 |
128 |
|
KEY_LEFT_SHIFT |
0x81 |
129 |
|
KEY_LEFT_ALT |
0x82 |
130 |
Option на Mac |
KEY_LEFT_GUI |
0x83 |
131 |
Логотип ОС, Command на Mac |
KEY_RIGHT_CTRL |
0x84 |
132 |
|
KEY_RIGHT_SHIFT |
0x85 |
133 |
|
KEY_RIGHT_ALT |
0x86 |
134 |
Также AltGr, Option на Mac |
KEY_RIGHT_GUI |
0x87 |
135 |
Логотип ОС, Command на Mac |
Специальные клавиши
Это все клавиши, которые не соответствуют печатаемому ASCII-символу и не являются модификаторами.
В алфавитно-цифровом кластере
Клавиша |
Шестнадцатеричное значение |
Десятичное значение |
|---|---|---|
KEY_TAB |
0xB3 |
179 |
KEY_CAPS_LOCK |
0xC1 |
193 |
KEY_BACKSPACE |
0xB2 |
178 |
KEY_RETURN |
0xB0 |
176 |
KEY_MENU |
0xED |
237 |
Навигационный кластер
Клавиша |
Шестнадцатеричное значение |
Десятичное значение |
|---|---|---|
KEY_INSERT |
0xD1 |
209 |
KEY_DELETE |
0xD4 |
212 |
KEY_HOME |
0xD2 |
210 |
KEY_END |
0xD5 |
213 |
KEY_PAGE_UP |
0xD3 |
211 |
KEY_PAGE_DOWN |
0xD6 |
214 |
KEY_UP_ARROW |
0xDA |
218 |
KEY_DOWN_ARROW |
0xD9 |
217 |
KEY_LEFT_ARROW |
0xD8 |
216 |
KEY_RIGHT_ARROW |
0xD7 |
215 |
Цифровая клавиатура
Клавиша |
Шестнадцатеричное значение |
Десятичное значение |
|---|---|---|
KEY_NUM_LOCK |
0xDB |
219 |
KEY_KP_SLASH |
0xDC |
220 |
KEY_KP_ASTERISK |
0xDD |
221 |
KEY_KP_MINUS |
0xDE |
222 |
KEY_KP_PLUS |
0xDF |
223 |
KEY_KP_ENTER |
0xE0 |
224 |
KEY_KP_1 |
0xE1 |
225 |
KEY_KP_2 |
0xE2 |
226 |
KEY_KP_3 |
0xE3 |
227 |
KEY_KP_4 |
0xE4 |
228 |
KEY_KP_5 |
0xE5 |
229 |
KEY_KP_6 |
0xE6 |
230 |
KEY_KP_7 |
0xE7 |
231 |
KEY_KP_8 |
0xE8 |
232 |
KEY_KP_9 |
0xE9 |
233 |
KEY_KP_0 |
0xEA |
234 |
KEY_KP_DOT |
0xEB |
235 |
Escape и функциональные клавиши
Библиотека может имитировать функциональные клавиши до F24.
Клавиша |
Шестнадцатеричное значение |
Десятичное значение |
|---|---|---|
KEY_ESC |
0xB1 |
177 |
KEY_F1 |
0xC2 |
194 |
KEY_F2 |
0xC3 |
195 |
KEY_F3 |
0xC4 |
196 |
KEY_F4 |
0xC5 |
197 |
KEY_F5 |
0xC6 |
198 |
KEY_F6 |
0xC7 |
199 |
KEY_F7 |
0xC8 |
200 |
KEY_F8 |
0xC9 |
201 |
KEY_F9 |
0xCA |
202 |
KEY_F10 |
0xCB |
203 |
KEY_F11 |
0xCC |
204 |
KEY_F12 |
0xCD |
205 |
KEY_F13 |
0xF0 |
240 |
KEY_F14 |
0xF1 |
241 |
KEY_F15 |
0xF2 |
242 |
KEY_F16 |
0xF3 |
243 |
KEY_F17 |
0xF4 |
244 |
KEY_F18 |
0xF5 |
245 |
KEY_F19 |
0xF6 |
246 |
KEY_F20 |
0xF7 |
247 |
KEY_F21 |
0xF8 |
248 |
KEY_F22 |
0xF9 |
249 |
KEY_F23 |
0xFA |
250 |
KEY_F24 |
0xFB |
251 |
Клавиши управления функциями
Это три клавиши, расположенные над навигационным кластером.
Клавиша |
Шестнадцатеричное значение |
Десятичное значение |
Примечания |
|---|---|---|---|
KEY_PRINT_SCREEN |
0xCE |
206 |
Print Screen или PrtSc / SysRq |
KEY_SCROLL_LOCK |
0xCF |
207 |
|
KEY_PAUSE |
0xD0 |
208 |
Pause / Break |
Международные раскладки клавиатуры
Некоторые национальные раскладки определяют дополнительные клавиши. Например, шведская и датская раскладки определяют KEY_A_RING как 0xB7, что соответствует клавише справа от «P», обозначенной как «A» в этих раскладках и «{ / [» в американской раскладке. Чтобы использовать эти определения, необходимо подключить соответствующий файл Keyboard.h. Например:
#include <Keyboard.h>
#include <Keyboard_sv_SE.h> // extra key definitions from Swedish layout
void setup() {
Keyboard.begin(KeyboardLayout_sv_SE); // use the Swedish layout
Keyboard.write(KEY_A_RING);
}
void loop() {} // do-nothing loop
Для получения списка определений клавиш, специфичных для раскладки, смотрите соответствующий файл Keyboard.h в исходных кодах библиотеки.