В: Какой виртуальный ключ в Mac для ключа извлечения?
О: Нет.
Ссылаясь на таблицы использования HID для универсальной последовательной шины, нажатие клавиши, но на самом деле использование HID - управление одним выстрелом со страницы использования потребителя.
3.4.1.4 One Shot Control (OSC)
One Shot Control — это кнопка, которая запускает одно событие или действие. One Shot Control кодируется в 1-битное значение и объявляется как относительный, предпочтительный, основной элемент с логическим минимумом и логическим максимумом 0 и 1 соответственно. Переход с 0 на 1 инициирует событие. При переходе с 1 на 0 ничего не происходит, но это необходимо, прежде чем может произойти другое событие. Пример - размагничивание.
На странице потребительского использования (0x0C) идентификатор извлечения использования определяется как:
Usage ID |
Usage Name |
Usage Types |
Section |
B8 |
Eject |
OSC |
15.7 |
Если вы хотите имитировать нажатие клавиши Eject на Arduino с поддержкой USB HID, таком как Leonardo, вы можете сделать это с помощью следующего кода, который отправляет Control-Shift-Eject для блокировки экрана...
// NicoHood's HID-Project
#include "HID-Project.h"
void setup() {
// Make pin 2 an input and turn on the pull-up resistor
// so it goes high unless connected to ground:
pinMode(2, INPUT_PULLUP);
Keyboard.begin();
// Sends a clean report to the host.
// This is important on any Arduino type.
Consumer.begin();
}
void loop() {
// Control-Shift-Eject locks the screen
if (digitalRead(2) == LOW) {
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
// This is a One Shot Command so doesn't need a "release"
Consumer.write(HID_CONSUMER_EJECT);
// Debounce
delay(100);
while (digitalRead(2) == LOW)
delay(100);
// Release Control-Shift keys
Keyboard.releaseAll();
}
}
Что касается реакции на нажатие клавиши Eject из Windows, если оно не вызывается как одно из событий WM_, связанных с управлением мультимедиа, я ожидаю, что вам придется написать драйвер USB HID/ACPI, который обнаруживает и вызывает сам OSC.
Существует Примеры кнопок в ACPI для устройств под управлением настольных версий Windows 10, демонстрирующих захват некоторых других OSC со страницы потребителя (например, увеличение/уменьшение громкости), вы, вероятно, могли бы расширить это, включив Eject.
Извините, я не могу больше помочь, но, надеюсь, это укажет вам правильное направление.
person
AlwaysLearning
schedule
06.01.2021