My .NET application captures detects motion of a specific type of object from webcam. I am able to control movement of mouse within my form by translating the motion of the object. However I want to control the mouse movement outside my form, like some kind of virtual mouse.
What would be the best technique to achieve this?
To perform click and move cursor outside the form through code:
[DllImport("user32.dll")]
static extern void mouse_event(int flags, int dX, int dY, int buttons, int extraInfo);
#region mouseConstants
const int MOUSE_MOVE = 0x00000001;
const int MOUSE_LEFTDOWN = 0x00000002;
const int MOUSE_LEFTUP = 0x00000004;
const int MOUSE_RIGHTDOWN = 0x00000008;
const int MOUSE_RIGHTUP = 0x00000010;
const int MOUSE_MIDDLEDOWN = 0x00000020;
const int MOUSE_MIDDLEUP = 0x00000040;
const int MOUSE_WHEEL = 0x00000800;
const int MOUSE_ABSOLUTE = 0x00008000;
#endregion
private void performClick(int posX, int posY)
{
Cursor.Position = new Point(posX, posY); // to move the cursor at desired position
mouse_event(MOUSE_LEFTDOWN, 0, 0, 0, 0); // to perform left mouse down
mouse_event(MOUSE_LEFTUP, 0, 0, 0, 0); // to perform left mouse up
}