Содержание

@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

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

MODIFY

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