2014-03-27 165 views
8

是否有任何方式或模塊移動光標和模擬鼠標點擊windows7/8與node.js?移動鼠標光標與node.js

我發現這個庫https://www.npmjs.org/package/win_mouse但好像它不工作

+0

如果你的系統上有Java,你可以使用Java + node作爲我的答案,在這裏描述:http://stackoverflow.com/a/21080830/586621 –

+0

你是什麼意思「看起來像它不工作「?有錯誤嗎? –

+0

@RalphWiggum是的,當我試圖通過提示運行我的js文件時,出現此錯誤: module.js:356 Module._extensions [extension](this,filename); 錯誤:%1不是有效的Win32應用程序。 –

回答

5

我以前試過win_mouse包,但它並沒有給我任何工作,認爲它需要的node.js的舊版本。

一個解決方案是使用ffi軟件包,該軟件包允許您動態加載和調用本地庫。移動鼠標在Windows,你需要從user32.dll這樣調用SetCursorPos功能:

var ffi = require("ffi"); 

var user32 = ffi.Library('user32', { 
    'SetCursorPos': [ 'long', ['long', 'long'] ] 
    // put other functions that you want to use from the library here, e.g., "GetCursorPos" 
}); 

var result = user32.SetCursorPos(10, 10); 
console.log(result); 

另一種解決方案是寫一個native node add-on,圍繞SetCursorPos功能包裝,但它是更爲複雜的。

+1

+1中指定,但您如何定義GetCursorPos,因爲該方法需要指向「Point」的指針? https://msdn.microsoft.com/en-us/library/windows/desktop/ms648390%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 –

+0

請遵循以下指南:https://github.com/node-ffi/node-ffi/wiki/Node-FFI-Tutorial特別是底部的'Structs'部分。 –

17

我一直在爲此模塊工作,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(); 

它仍然是一個進展中的工作,但它會做你想要的!

+3

這似乎正是我想要的,太糟糕了,我需要在Windows機器上運行此操作。雖然..當我嘗試安裝它時,我總是收到錯誤 –

+2

該庫很快就會支持Windows! –

+3

現在有一個Windows版本,請參閱此問題:https://github.com/octalmage/robotjs/issues/2 –