Въпрос: Кой е виртуалният ключ в Mac за ключа за изваждане?
О: Няма.
По отношение на HID таблици за използване за универсална серийна шина, Eject не е натискане на клавиш, но всъщност използване на HID - еднократно управление от страницата за потребителско използване.
3.4.1.4 One Shot Control (OSC)
One Shot Control е бутон, който задейства едно събитие или действие. Еднократна контрола се кодира в 1-битова стойност и се декларира като относителен, предпочитан, основен елемент с логически минимум и логически максимум от 0 и 1, съответно. Преход от 0 към 1 инициира събитие. Нищо не се случва при преход от 1 към 0, но е необходимо, преди да може да възникне друго събитие. Пример е degauss.
На страницата за потребителско използване (0x0C) ИД за използване при изваждане се дефинира като:
Usage ID |
Usage Name |
Usage Types |
Section |
B8 |
Eject |
OSC |
15.7 |
Ако искате да фалшифицирате натискане на клавиш за изваждане от USB HID-съвместим Arduino, като например 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();
}
}
Що се отнася до реакцията на натискане на клавиш за изваждане от Windows, освен ако не е повдигнато като едно от свързаните с Media Control WM_ събития, очаквам, че ще трябва да напишете USB HID/ACPI драйвер, който открива и повдига самия OSC.
Има Примерни бутони в ACPI за устройство, работещо с издания за настолни компютри на Windows 10, което демонстрира прихващане на някои от другите OSC от потребителската страница (като увеличаване/намаляване на обема), вероятно бихте могли да разширите това, за да включите Eject.
Съжалявам, че не мога да бъда повече полезен там, но се надяваме, че това ви насочва в правилната посока.
person
AlwaysLearning
schedule
06.01.2021