@amperka/usb-keyboard

JS-модуль позволяет выступить Isrka JS в роли компьютерной клавиатуры.

var kb = require('@amperka/usb-keyboard');
setInterval(() => {
  kb.type('Hello World!');
  kb.tap([kb.MODIFY.CTRL, kb.KEY.ENTER]);
}, 3000);

Чтобы компьютер распознал плату как клавиатуру, после самой первой загрузки программы с подключённой библиотекой плату необходимо отключить от USB и подключить вновь.

Функции модуля

tap(key[, callback])

Посылает сигнал кратковременного нажатия (нажали, отпустили) клавиши с кодом key.

После нажатия, если передана, будет вызвана функция callback без параметров.

Чтобы не оперировать сырыми кодами клавиш, используйте словарь KEY.

kb.tap(kb.KEY.ENTER);
kb.tap(40); // тот же enter, но с явным кодом клавиши
kb.tap(kb.KEY['=']); // клавиша «равно»

Помимо числового кода или элемента словаря KEY в качестве параметра key вы можете передать строку. В этом случае номинальный код клавиши будет найден в KEY по этому строковому ключу.

kb.tap('ENTER');

Вместо одного значения key можно передать массив. В этом случае номинальный код клавиши ожидается на последней позиции массива, а в качестве первых элементов ожидаются модификаторы (Ctrl, Alt, Shift и т.п.). Доступный перечень модификаторов доступен в словаре MODIFY.

kb.tap([kb.MODIFY.CTRL, kb.MODIFY.ALT, 'ENTER']);
kb.tap([kb.MODIFY.RIGHT_ALT, '=']);

type(text[, callback])

Печатает строку text будто её вводит человек. Скорость ввода составляет примерно 50 символов в секунду.

По окончанию ввода вызывается функция callback без параметров, если она была передана.

kb.type('=12+15%'); // выводит =12+15%

В качестве символов текста ожидаются только те, что доступны в англоязычной раскладке клавиатуры. Любые другие символы, в том числе и кириллические, будут выведены символом ?.

kb.type('Бла бла бла'); // выводит ??? ??? ???

Обратите внимание, что реально напечатанный на компьютере текст зависит от текущей раскладки и состояния клавиши Caps Lock, о которых библиотека знать не может: они контролируются операционной системой компьютера. Универсальными являются только те клавиши, что не зависят от раскладки: цифры, некоторые знаки пунктуации и операторы.

kb.type('Hello'); // выводит Hello в английской раскладке
                   // Руддщ — в русской
                   // hELLO — в английской с Caps Lock’ом

KEY

Объект-словарь с кодами клавиш. Содержит ключи:

  • Символы центральной части клавиатуры: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 ; ' ` , . / - = [ ]  \n \t
  • Альтернативные обозначения некоторых клавиш: ENTER TAB BACKSLASH SPACE
  • Функциональные клавиши: F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
  • Клавиши цифрового блока: PAD_SLASH PAD_ASTERIX PAD_MINUS PAD_PLUS PAD_ENTER PAD_1 PAD_2 PAD_3 PAD_4 PAD_5 PAD_6 PAD_7 PAD_8 PAD_9 PAD_0 PAD_PERIOD
  • Клавиши постоянных модификаторов: NUM_LOCK SCROLL_LOCK CAPS_LOCK
  • Навигационные клавиши: HOME END PAGE_UP PAGE_DOWN RIGHT LEFT UP DOWN
  • Прочие клавиши: INSERT DELETE BACKSPACE ESC PRINTSCREEN PAUSE

MODIFY

Объект-словарь с клавишами-модификаторами. Содержит ключи:

  • CTRL, LEFT_CTRL — левый Control;
  • ALT, LEFT_ALT — левый Alt;
  • SHIFT, LEFT_SHIFT — левый Shift;
  • GUI, LEFT_GUI — левая Windows (она же Super, она же Meta);
  • RIGHT_CTRL — правый Control;
  • RIGHT_ALT — правый Alt;
  • RIGHT_SHIFT — правый Shift;
  • RIGHT_GUI — правая Winows.