2013-03-05 36 views
7

我一直在尋找一個支持鼠標和鍵盤的聽力和執行本土的NodeJS鼠標和鍵盤綁定

本機模塊的NodeJS我發現這https://npmjs.org/package/mouse 但源代碼看起來..像它只支持瀏覽器。

+0

你正在尋找捕捉鼠標和按鍵事件在終端? – 2013-03-05 19:13:44

+0

好,如果你說在nodejs中監聽鼠標移動,然後做'console.log(mouse.x,mouse.y);'然後是 – bmatusiak 2013-03-05 19:29:36

+0

你有沒有找到答案? – 2013-06-22 06:40:03

回答

3

您可以使用node-java模塊將Java提供的Robot Class換成跨平臺解決方案。

工作例如:

var java = require('java'); 

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

robot.mouseMoveSync(0, 0); 
+0

你有沒有試過這個讓它工作?在OSX上剛剛嘗試過,它在碼頭啓動了一個Java圖標,但沒有做任何事情,有什麼想法? – Owen 2014-02-08 12:59:01

+0

我在Arch Linux上使用java版本1.7(Oracle Java),node.js版本0.10.25和node-java模塊版本0.3.0測試了它。 – 2014-02-08 19:04:02

+0

@OwenMelbourne我不在node-java項目上工作。你可以嘗試自己編寫一個簡單的Java程序來做同樣的事情,看看它是否可行。如果是這樣,您可以在他們的項目頁面上使用您使用的代碼(Java和Node.js代碼),操作系統(https://github.com/joeferner/node-java/issues) ,版本號等,看他們是否可以進一步幫助你。 – 2014-02-08 19:10:01

10

我一直工作在模塊上發送鼠標和鍵盤事件,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

1

看看https://github.com/Loknar/node-macmouse

$ NPM安裝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(); 
1

嘗試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();