Имитация щелчков мыши в C # (mouse_event)

      Данный пример демонстрирует как с помощью статического метода «mouse_event» из системной библиотеки «user32.dll», произвести программное перемещение курсора и выполнение двойного клика левой клавишей мыши по новому расположению.
      Создайте проект Windows Form в Microsoft Visual Studio и добавьте в конструкторе главной формы из панели элементов, элемент управления «Button1». Сделайте двойной клик левой клавишей мыши по добавленному компоненту. Вы перейдете в автоматически созданный метод «button1_Click» события «Click». Добавьте в него приведенный ниже код, перемещающий курсор мыши в указанные координаты (X = 30, Y = 30) и выполняющий двойной клик левой клавишей мыши по новому положению.
//Координаты на экране:     
int X = 30;
int Y = 30;

//Перемещение курсора на указанные координаты
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE,
    System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width,
    System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height, X, Y);

//Выполнение первого клика левой клавишей мыши
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);

//Выполнение второго клика левой клавишей мыши
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
Добавьте в листинг главной формы константы и статический метод «mouse_event».
[System.Runtime.InteropServices.DllImport("user32.dll", 
    CharSet = System.Runtime.InteropServices.CharSet.Auto, 
    CallingConvention = 
   System.Runtime.InteropServices.CallingConvention.StdCall)] 
public static extern void mouse_event(uint dwFlags, 
                                      int dx, 
                          int dy, 
                      int dwData, 
                      int dwExtraInfo);   

//Нормированные абсолютные координаты
private const int MOUSEEVENTF_ABSOLUTE = 0x8000; 

//Нажатие на левую кнопку мыши
private const int MOUSEEVENTF_LEFTDOWN = 0x0002;

//Поднятие левой кнопки мыши
private const int MOUSEEVENTF_LEFTUP = 0x0004; 

//перемещение указателя мыши
private const int MOUSEEVENTF_MOVE = 0x0001;
      Для проверки работы данного примера, сверните все открытые приложения вашего компьютера и запустите данный пример. При нажатии на главной форме кнопки «Эмулировать», ваш курсор переместиться в левый верхний угол и выполнит двойной клик левой клавишей мыши. Если вы поместите ярлык «Мой компьютер» в левый верхний угол, то после эмуляции у вас откроется окно проводника Windows.

Ссылка для скачивания примера: Rusfolder.net


2 комментария:

  1. В примерах показывают как минимум центр экрана, а не тупо скопированный код с мсдна

    ОтветитьУдалить
  2. Здравствуйте, не совсем понятно, что вы имеете ввиду. Пожалуйста опишите вашу проблему.

    ОтветитьУдалить

Большая просьба, не писать в комментариях всякую ерунду не по теме!