Как отправлять нажатия клавиш через nodejs

Я кодирую twitch-бота, и я хочу, чтобы когда пользователи вводят команду (что-то вроде !space [time] ), он случайным образом нажимал пробел в течение времени, которое они дали. Я знаю, как получить команду, но я не знаю, как отправить ключевой ввод. заранее спасибо

РЕДАКТИРОВАТЬ: когда я говорю «отправлять нажатия клавиш», я имею в виду с консоли nodejs на моем конце, а не на twitch

РЕДАКТИРОВАТЬ 2: Я хочу, чтобы зрители в моем потоке могли тратить баллы, чтобы троллить меня, когда я играю в игры.


person Kong    schedule 16.06.2018    source источник
comment
Это не имеет особого смысла. Боты Twitch общаются с сервером по сети. Они посылают ему строки. Сервер не использует виртуальную клавиатуру. Нет клавиш, которые нужно нажимать.   -  person Quentin    schedule 16.06.2018
comment
Я имею в виду, что пользователь набирает !space, а затем на моем конце (потому что я размещаю бота) он нажимает пробел на моей клавиатуре.   -  person Kong    schedule 16.06.2018
comment
Для этого вам, вероятно, потребуется найти способ заставить вашего бота притворяться USB-клавиатурой (и это делает ссылку на то, что он является дергающимся ботом, в значительной степени неуместной: проблема, о которой вы спрашиваете, заключается в том, что узел имитирует нажатия клавиш локально и запускается сообщением по сети не имеет значения). Очень странно хотеть и звучит очень похоже на xyproblem.info   -  person Quentin    schedule 16.06.2018
comment
Добавлено больше деталей   -  person Kong    schedule 16.06.2018
comment
Отвечает ли это на ваш вопрос? Можно ли имитировать событие клавиатуры/мыши в NodeJS?   -  person Venryx    schedule 08.09.2020


Ответы (2)


Я знаю, что эта ветка устарела, но вы можете использовать Nut.js.

Минимальный пример:

const { keyboard } = require('@nut-tree/nut-js');
keyboard.config.autoDelayMs = 0;

   keyboard.type("Hello World!");

Лично я считаю, что RobotJS использует слишком много зависимостей. Nut.js намного проще в использовании и быстрее настраивается.

person MiCROZi    schedule 08.07.2020

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

Вот пример:

// Require RobotJS
var robot = require('robotjs')
// Tap space key
robot.keyTap("space")
person theob    schedule 16.06.2018
comment
Я не могу установить robotjs - person Kong; 16.06.2018