Нажать клавишу Windows, используя «keyboard.press();»

Можно ли позволить Arduino Leonardo имитировать нажатие клавиши Windows с помощью команды keyboard.press(......);?

Если да, то какое значение требуется?

, 👍1

Обсуждение

Добавьте задержку (20) после нажатия клавиши, @Darwyn

если я хочу нажать цифровую клавишу, какое значение мне нужно ввести в программу?? Например, я хочу нажать клавиша управления + цифровая клавиша 1... Keyboard.press(KEY_LEFT_GUI); Keyboard.press('какое значение нужно ввести для клавиши 1?'); Клавиатура.releaseAll();, @chauhan anand


2 ответа


3

Глядя на список кодов клавиатуры HID (стр. 53), клавиши, которые вы ищете для иметь код E3 (клавиатура слева GUI) или E7 (клавиатура справа GUI).

К сожалению, функция Keyboard::press (вы можете увидеть ее здесь) не принимает такое высокое значение, так как вы можете вводить только числа от 0 до 255, а для отправки необработанного значения вы должны отправить его значение плюс 136 (что приводит к значениям 363 и 367).

Однако в заголовочном файле есть два предопределенных ключа с именами KEY_LEFT_GUI и KEY_RIGHT_GUI. Возможно, эти клавиши-модификаторы ведут себя точно так же.

Поэтому я предлагаю

  1. попробуйте использовать одно из этих значений (например, keyboard.press(KEY_LEFT_GUI); или keyboard.press(KEY_RIGHT_GUI); или используйте keyboard.write (KEY_LEFT_GUI); чтобы имитировать нажатие клавиши, а не удерживать ее нажатой).
  2. Если это не работает, создайте собственную библиотеку, скопировав файлы keyboard.cpp и keyboard.h, вызвав класс по-другому и добавив возможность отправки ключей E3 и/или E7. В этом случае вам просто нужно изменить функцию пресса.

Удачи

,

6

Они Keyboard.press() принимают модификаторы в соответствии с документацией. Возможно, вам придется выполнить несколько команд press() перед тем, как отпустить.

Например, если вы хотите запустить Проводник, вы можете использовать:

Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('e');
Keyboard.releaseAll();

Это эквивалентно сочетанию клавиш Win + E.

Модификатор GUI заменяет «командную клавишу», которая представляет собой логотип Windows на ПК или клевер (⌘) на Mac.

У меня нет ограничений на более высокое значение на моей плате (Pro Micro), как указано @frarugi87.

,