Имитация движения мыши и кликов в C#
Эта программа использует функцию API mouse_event для имитации движения мыши и моделирования щелчка мыши.
Обработчик события Paint программы рисует круги вокруг целевой точки, чтобы вы могли видеть, где она находится.
// Целевое местоположение мыши. private Point m_Target = new Point(200, 150); // Нарисуем цель. private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; for (int i = 5; i <= 20; i += 5) { e.Graphics.DrawEllipse(Pens.Red, m_Target.X - i - 1, m_Target.Y - i - 1, 2 * i, 2 * i); } }
Когда вы нажимаете мышью на форме, следующий код рисует X, на который вы нажали.
// Нарисуем X, на который пользователь нажал. private void Form1_Click(object sender, EventArgs e) { // Получить позицию мыши. Point pt = MousePosition; // Преобразование в экранные координаты. pt = this.PointToClient(pt); using (Graphics gr = this.CreateGraphics()) { gr.SmoothingMode = SmoothingMode.AntiAlias; gr.DrawLine(Pens.Blue, pt.X - 5, pt.Y - 5, pt.X + 5, pt.Y + 5); gr.DrawLine(Pens.Blue, pt.X + 5, pt.Y - 5, pt.X - 5, pt.Y + 5); } }
Когда вы нажимаете Move & amp; Нажмите кнопку, программа выполнит следующий код.
// Переместите мышь и щелкните по ней. private void btnMoveClick_Click(object sender, EventArgs e) { // Преобразование цели в абсолютные координаты экрана. Point pt = this.PointToScreen(m_Target); // mouse_event перемещается в системе координат, где // (0, 0) находится в верхнем левом углу и // (65535,65535) находится в нижнем правом углу. // Преобразование координат. Rectangle screen_bounds = Screen.GetBounds(pt); uint x = (uint)(pt.X * 65535 / screen_bounds.Width); uint y = (uint)(pt.Y * 65535 / screen_bounds.Height); // Переместите мышь. mouse_event( (uint)(MouseEventFlags.ABSOLUTE | MouseEventFlags.MOVE), x, y, 0, 0); // Нажмите там. mouse_event( (uint)(MouseEventFlags.ABSOLUTE | MouseEventFlags.MOVE | MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP), x, y, 0, 0); }
Сначала код преобразует координаты целевой точки из координат формы в координаты экрана. Затем он преобразует результат в специальную систему координат мыши, которая работает от 0 до 65535 в направлениях X и Y.
Затем программа использует функцию API mouse_event, чтобы переместить мышь в целевую позицию и щелкнуть мышью. Поскольку это моделирует нормальное событие щелчка мыши, обработчик события Click формы выполняет и рисует X в целевой точке.