In C# programming using mouse events is a need for many programmer. Using C#, Mouse positions can be easily used but, we can’t change mouse position or create mouse click.
There is a solutions for this problem. We can use DllImport to access windows APIs, so we can both change mouse position and create click event.
I write a Mouse class because of this need. We can access mouse position, set cursor coordinates and create left and right click events.
class Fare
{
[DllImport("user32.dll")]
private static extern void mouse_event(UInt32 dwFlags, UInt32 dx, UInt32 dy,
UInt32 dwData, IntPtr dwExtraInfo);
[DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);
private const UInt32 MouseEventLeftDown = 0x0002;
private const UInt32 MouseEventLeftUp = 0x0004;
private const UInt32 MouseEventRightDown = 0x0008;
private const UInt32 MouseEventRightUp = 0x0010;
static public int konumX
{
get { return System.Windows.Forms.Control.MousePosition.X; }
}
static public int konumY
{
get { return System.Windows.Forms.Control.MousePosition.Y; }
}
public static void SendLeftClick()
{
mouse_event(MouseEventLeftDown, (uint)konumX, (uint)konumY, 0, new System.IntPtr());
mouse_event(MouseEventLeftUp, (uint)konumX, (uint)konumY, 0, new System.IntPtr());
}
public static void SendRightClick()
{
mouse_event(MouseEventRightDown, (uint)konumX, (uint)konumY, 0, new System.IntPtr());
mouse_event(MouseEventRightUp, (uint)konumX, (uint)konumY, 0, new System.IntPtr());
}
public static void SendMouseDown()
{
mouse_event(MouseEventLeftDown, (uint)konumX, (uint)konumY, 0, new System.IntPtr());
}
static public void SetFare(int x, int y)
{
SetCursorPos(x,y);
}
}