Нажать клавишу Windows, используя «keyboard.press();»
Можно ли позволить Arduino Leonardo имитировать нажатие клавиши Windows с помощью команды keyboard.press(......);
?
Если да, то какое значение требуется?
@KHS, 👍1
Обсуждение2 ответа
Глядя на список кодов клавиатуры HID (стр. 53), клавиши, которые вы ищете для иметь код E3 (клавиатура слева GUI) или E7 (клавиатура справа GUI).
К сожалению, функция Keyboard::press
(вы можете увидеть ее здесь) не принимает такое высокое значение, так как вы можете вводить только числа от 0 до 255, а для отправки необработанного значения вы должны отправить его значение плюс 136 (что приводит к значениям 363 и 367).
Однако в заголовочном файле есть два предопределенных ключа с именами KEY_LEFT_GUI
и KEY_RIGHT_GUI
. Возможно, эти клавиши-модификаторы ведут себя точно так же.
Поэтому я предлагаю
- попробуйте использовать одно из этих значений (например,
keyboard.press(KEY_LEFT_GUI);
илиkeyboard.press(KEY_RIGHT_GUI);
или используйтеkeyboard.write (KEY_LEFT_GUI);
чтобы имитировать нажатие клавиши, а не удерживать ее нажатой). - Если это не работает, создайте собственную библиотеку, скопировав файлы keyboard.cpp и keyboard.h, вызвав класс по-другому и добавив возможность отправки ключей E3 и/или E7. В этом случае вам просто нужно изменить функцию пресса.
Удачи
Они Keyboard.press()
принимают модификаторы в соответствии с документацией. Возможно, вам придется выполнить несколько команд press()
перед тем, как отпустить.
Например, если вы хотите запустить Проводник, вы можете использовать:
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('e');
Keyboard.releaseAll();
Это эквивалентно сочетанию клавиш Win + E.
Модификатор GUI
заменяет «командную клавишу», которая представляет собой логотип Windows на ПК или клевер (⌘) на Mac.
У меня нет ограничений на более высокое значение на моей плате (Pro Micro), как указано @frarugi87.
- Отправка мультимедийных клавиш клавиатуры с помощью библиотеки клавиатур
- Какие диоды использовать в матричном вводе кнопок/клавиш? (Изготовление игровой клавиатуры)
- Keyboard.print() пропускает клавиши
- Не удается заставить клавиатуру использовать Keyboard.write на Arduino Uno
- Windows 10 не распознает Arduino Leonardo
- Клавиатура Arduino: Проблема с языком ввода
- Не удается ввести обратную косую черту (\) с помощью библиотеки клавиатуры
- Arduino Pro Micro не распознает INPUT или INPUT_PULLUP
Добавьте задержку (20) после нажатия клавиши, @Darwyn
если я хочу нажать цифровую клавишу, какое значение мне нужно ввести в программу?? Например, я хочу нажать
клавиша управления + цифровая клавиша 1
... Keyboard.press(KEY_LEFT_GUI); Keyboard.press('какое значение нужно ввести для клавиши 1?'); Клавиатура.releaseAll();, @chauhan anand