Digispark / DigiKeyboard изменить раскладку клавиатуры
Я пытаюсь использовать Digispark в качестве Rubber Ducky, но Digispark работает только с американской раскладкой. Немецкая раскладка — QWERTZ. Некоторые клавиши, например, y и z, можно изменить, но если есть [ или ], это невозможно. Попытка определить клавишу [ в DigiKeyboard.h отображает ü.
Знает ли кто-нибудь решение?
@user28624, 👍3
3 ответа
Вы можете редактировать файл scancode-ascii-table.h в вашей библиотеке DigiKeyboard. По сути, он определяет, какой код ASCII соответствует какому скан-коду клавиатуры.
Таким образом, если вы пытаетесь напечатать символ «:», но вместо этого получаете «>», вы знаете, что в вышеупомянутом файле в позиции ASCII для «:» находится скан-код для «>».
Используя это, вы можете менять местами скан-коды и, по сути, создавать собственные «соответствия». Например, если поменять местами значения в ASCII-кодах 89, 90 и 121, 122, можно решить проблему переключения Y/Z.
Однако я так и не разобрался, как правильно выводить обратную косую черту. Возможно, вам придётся сопоставить это с другим символом ASCII, который вам не нужен.
В дополнение к этому ответу, существует обходной путь с использованием duck2spark от mame82: https://github.com/mame82/duck2spark
Решение здесь: Скрипт Python для преобразования полезных данных RubberDucky в скетч DigiSpark с учетом выбранной раскладки клавиатуры:
duck2spark
Кстати: клавиши '<', '|' и '>' находятся на NON-US-KEY-100 немецкой раскладки клавиатуры. Для USB HID клавиша имеет значение 0x64, и необходимо установить правильные модификаторы (например, ALT_GR для '|'). Вы можете отправить их с помощью
DigiKeyboard.sendKeyStroke(key,modifier);
Подробнее см. в таблицах использования USB HID
Вот версия библиотеки Digistump с поддержкой немецкой клавиатуры https://github.com/adnanonline/DigistumpArduinoDe Я адаптировал библиотеку клавиатуры: digistump-avr/libraries/DigisparkKeyboard/DigiKeyboard.h под немецкую раскладку
- Связь последовательного порта Digispark
- Wire.h не найден!
- Может ли плагин Arduino Eclipse использовать библиотеки, установленные Arduino IDE?
- NodeMCU поддерживает внедрение ключей?
- ATtiny85 и DHT11 - Датчик всегда возвращает 0
- Как передать строковые данные с помощью библиотеки rc-switch?
- Digispark ATtiny 85 - не распознается как HID устройство
- Arduino IDE: Плата nodemcuv2 (платформа esp8266, пакет esp8266) неизвестна