Simulating a mouse button click in Windows

Nick Carlson picture Nick Carlson · Nov 16, 2009 · Viewed 10.1k times · Source

I'm writing Remote Desktop clone in C++ using QT. So far I'm able to move the mouse cursor around fine. QT has a nice setPos function for that. However, I'm a bit lost as to what API/Library to use for simulating mouse button clicks.

One method I'm aware of is to send the WM_(event) to a window using the window's HWND. However, I was hoping there was a more salient method for taking complete control over a mouse. Is there any other way to tell the operating system that the left mouse button has been clicked?

Thanks.

Answer

Valentin Heinitz picture Valentin Heinitz · Mar 13, 2011

Combining all togegher, here is the code for Qt:

#include <windows.h>
QApplication::desktop()->cursor().setPos(globalX,globalY);
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 1, 1, 0, 0);