A node.js module that enables you to create virtual mouse input on Mac OS X.
Uses NodObjC to hook into the Cocoa framework. The macmouse module is merely a wrapper around mouse control commands to the Cocoa framework via NodObjC.
Install using npm,
$ npm install macmousevarmouse=require('macmouse');mouse.init();varptX=800;varptY=600;varcounter=0;vardoThings=function(){mouse.Place(ptX,ptY);setTimeout(pressAndHold,250);}varpressAndHold=function(){mouse.LeftButtonPress();setTimeout(doDragStuff,250);}vardoDragStuff=function(){ptX+=2;ptY+=2;mouse.DragPlace(ptX,ptY);if(counter<15){counter+=1;setTimeout(doDragStuff,250);}else{mouse.LeftButtonRelease();}}doThings();mouse.quit();And a small description for each function.
// Desc: Imports the macmouse module as mouse// Before: nothing// After: mouse is an uninitialized macmousevarmouse=require('macmouse');// Desc: Initializes the macmouse module// Before: mouse is an uninitialized macmouse// After: mouse is an initialized macmousemouse.init();// Desc: Sends request for real mouse position, more expensive than getPos// Before: mouse is an initialized macmouse// After: pos holds x and y numbers representing the system mouse positionvarpos=mouse.getRealPos();varx=pos.x;vary=pos.y;// Desc: Returns mouse position currently stored in the mouse module// Before: mouse is an initialized macmouse// After: pos holds x and y numbers representing the system mouse position currently stored in the// mouse modulevarpos=mouse.getPos();varx=pos.x;vary=pos.y;// Desc: Sends mouse event message to place the system mouse at a specific position// Before: mouse is an initialized macmouse, x and y are numbers representing a specific position// After: mouse event has been sent to move the system mouse to position defined by x and ymouse.Place(x,y);// Desc: Sends mouse event message to place the system mouse at a specific position while in a // dragging state// Before: mouse is an initialized macmouse, x and y are numbers representing a specific position, the // system mouse currently has (or thinks it has) the left mouse button pressed// After: mouse event has been sent to move the system mouse to position defined by x and y with left // mouse button pressedmouse.DragPlace(x,y);// Desc: Sends mouse event message to move the system mouse (from current stored position in the mouse // module) by a vector defined by dx and dy// Before: mouse is an initialized macmouse, dx and dy are numbers representing our moving vector // After: mouse event has been sent to move the system mouse by a vector defined by the numbers dx and dymouse.Move(dx,dy);// Desc: Sends mouse event message to move the system mouse (from current stored position in the mouse // module) by a vector defined by dx and dy while in a dragging state// Before: mouse is an initialized macmouse, dx and dy are numbers representing our moving vector, the // system mouse currently has (or thinks it has) the left mouse button pressed// After: mouse event has been sent to move the system mouse by a vector defined by the numbers dx and dy // with left mouse button pressedmouse.DragMove(dx,dy);// Desc: Sends mouse event message to press and hold down the left button of the system mouse// Before: mouse is an initialized macmouse// After: mouse event has been sent to press and hold the left button on the system mousemouse.LeftButtonPress();// Desc: Sends mouse event message to release a pressed left button of the system mouse// Before: mouse is an initialized macmouse// After: mouse event has been sent to release a pressed left button on the system mousemouse.LeftButtonRelease();// Desc: Sends mouse event message to press and release left button of the system mouse// Before: mouse is an initialized macmouse// After: mouse event has been sent to press and release left button on the system mousemouse.Click();// Desc: Sends mouse event message to press and hold down the right button of the system mouse// Before: mouse is an initialized macmouse// After: mouse event has been sent to press and hold the right button on the system mousemouse.RightButtonPress();// Desc: Sends mouse event message to release a pressed right button of the system mouse// Before: mouse is an initialized macmouse// After: mouse event has been sent to release a pressed right button on the system mousemouse.RightButtonRelease();// Desc: Sends mouse event message to press and release right button of the system mouse// Before: mouse is an initialized macmouse// After: mouse event has been sent to press and release right button on the system mousemouse.RightClick();// Desc: Sends mouse event message to double click the system mouse// Before: mouse is an initialized macmouse// After: mouse event has been sent to double click the system mousemouse.DoubleClick();// Desc: Sends mouse scroll event message// Before: mouse is an initialized macmouse, vertical and horizontal// are 'small signed integer values, typically in a range from -10 to +10',// in reality they can be any integer from -32768 to 32767,// if horizontal isn't provided it defaults to 0// After: scroll event has been sent to scroll by a vector defined by the// vertical and horizontal integersmouse.Scroll(vertical);mouse.Scroll(vertical,horizontal);// Desc: Does garbage collection on some objective c stuff, be a good lad and call this when // you're done using the macmouse module// Before: mouse is an initialized macmouse// After: mouse is an uninitialized macmousemouse.quit();(MIT License)
