键盘修饰符如何影响按键的值?

How keyboard modifiers influence the value of the keypress?

我正在研究 "translate" 键盘布局的方法,该布局适用于按键值(以 USB HID 标准编写的固定值)。 为此,我需要生成一个原始(整数)按键值,但我不确切知道修饰符如何更改该值。

我试图了解 DigiKeyboard.h 库是如何解决这个问题的,但我无法理解,这是这样做的主要代码片段(我猜):

size_t write(uint8_t chr) {
    uint8_t data = pgm_read_byte_near(ascii_to_scan_code_table + (chr - 8));
    sendKeyStroke(data & 0b01111111, data >> 7 ? MOD_SHIFT_RIGHT : 0);
    return 1;
}

关于如何操作的任何提示?谢谢!

PS。如果有帮助,我正在研究这个翻译器,让 HID 设备(例如 digispark (ATtiny 85) 或 rubber ducky)与每个软件定义的布局一起工作,而无需更改系统上的任何内容。

您无法使用该库转换为所有布局!

在这里发布了一个答案: