How can I simulate mouse events from code? How can I simulate mouse events from code? windows windows

How can I simulate mouse events from code?


You're looking for the SendInput function, which allows you to synthesize mouse movements and button clicks in your code by specifying an array of INPUT structures corresponding to input events.

UINT WINAPI SendInput(  __in  UINT nInputs,     // number of structures in the pInputs array  __in  LPINPUT pInputs,  // an array of INPUT structures, representing an event  __in  int cbSize        // the size, in bytes, of an INPUT structure);

Note, however, that this function is subject to User Interface Privilege Isolation (UIPI), which means that your application is only permitted to inject input to applications that are running at an equal or lesser integrity level.


Use mouse_event (winuser.h). The following code will move the mouse then perform a click at the new location. You can do this in two lines but this is more verbose.

Note that X and Y are specified in mickeys, 0 to 65535. This is then mapped onto the current resolution, i.e. 0,0 will be the top left corner and 65535,65535 will be the lower right hand corner.

mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, x, y, 0, 0);mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);