C#: Программное нажатие кнопки мыши

Сегодня мы рассмотрим как в C# программно нажать левую или правую кнопку мыши. Статья короткая, но многим будет очень полезна. Сам я в свое время долго искал простое решение данной задачи… и все таки нашел и спешу поделиться с Вами.

Данный ход возможен благодаря WinAPI. Для этого на потребуется подключить namespace System.Runtime.InteropServices и сделать DllImport:

[DllImport(«user32.dll», CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(MouseEvent dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

Где MouseEvent — перечисление следующего вида:

public enum MouseEvent
{
  MOUSEEVENTF_LEFTDOWN = 0x02,
  MOUSEEVENTF_LEFTUP = 0x04,
  MOUSEEVENTF_RIGHTDOWN = 0x08,
  MOUSEEVENTF_RIGHTUP = 0x10,
 }

Далее в коде программы делаем вызов:

mouse_event(MouseEvent.MOUSEEVENTF_RIGHTDOWN,
            System.Windows.Forms.Cursor.Position.X,
            System.Windows.Forms.Cursor.Position.Y,
            0,
            0);
mouse_event(MouseEvent.MOUSEEVENTF_RIGHTUP,
            System.Windows.Forms.Cursor.Position.X,
            System.Windows.Forms.Cursor.Position.Y,
            0,
            0);

Таким образом мы программно нажали на правую кнопку мыши. Аналогично нажимается и левая кнопка. Для двойного нажатия нужно выполнить данное действие два раза.

Запись опубликована в рубрике C# с метками , , , , . Добавьте в закладки постоянную ссылку.