Собственные привязки мыши и клавиатуры NodeJS

Я искал собственный модуль nodejs, который поддерживает прослушивание и выполнение мыши и клавиатуры

я нашел это. https://npmjs.org/package/mouse но исходный код выглядит так, как будто он поддерживает только браузеры.

Ответ 1

Я работал над модулем для отправки событий мыши и клавиатуры, RobotJS.

Пример кода:

var robot = require("robotjs");

//Get the mouse position, retuns an object with x and y. 
var mouse=robot.getMousePos();
console.log("Mouse is at x:" + mouse.x + " y:" + mouse.y);

//Move the mouse down by 100 pixels.
robot.moveMouse(mouse.x,mouse.y+100);

//Left click!
robot.mouseClick();

Затем для прослушивания я использую nw.js:

https://github.com/nwjs/nw.js/wiki/Shortcut

Ответ 2

Попробуйте iohook модуль.
Он поддерживает Windows/Linux/MacOS

'use strict';
const ioHook = require('iohook');

ioHook.on("mousemove", event => {
   console.log(event);
   /* You get object like this
   {
      type: 'mousemove',
      x: 700,
      y: 400
    }
   */
});
// For keyboard hook
ioHook.on("keydown", event => { .... });
ioHook.on("keyup", event => { .... });

//Register and start hook 
ioHook.start();

Ответ 3

Вы можете обернуть Robot Class, предоставленный Java для кросс-платформенного решения, используя node-java.

Рабочий пример:

var java = require('java');

var Robot = java.import('java.awt.Robot');
var robot = new Robot();

robot.mouseMoveSync(0, 0);

Ответ 4

Взгляните на https://github.com/Loknar/node-macmouse

$npm install macmouse

example.js

var mouse = require ('macmouse');

mouse.init();

var ptX = 800;
var ptY = 600;

var doThings = function() {
    mouse.Place(ptX, ptY);
    setTimeout(pressAndHold, 250);
}

var pressAndHold = function() {
    mouse.LeftButtonPress();
    setTimeout(doDragStuff, 250);
}

var doDragStuff = function() {
    ptX += 2;
    ptY += 2;
    mouse.DragPlace(ptX, ptY);
    setTimeout(doDragStuff, 250);
}

doThings();

mouse.quit();

Ответ 5

Вы можете попробовать mouse3vents. Это небольшой аддон c++, который очень прост в использовании.

https://www.npmjs.com/package/mouse3vents

Я реализовал это и на самом деле работает только на Windows, но я сделаю его портативным и с большим количеством функций как можно скорее.