Клик мышкой - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Подскажите плиз, как программно нажать и отпустить левую кнопку мышки.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication8
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // нажать левую кнопку мышки в координатах 150 150
            // отпустить кнопку
        }
    }
}
Тоесть, на форме есть кнопка при нажатии котрой курсор переместится в координаты 150, 150 и с эмулируеться нажати левой кнопки мышки. Сам не могу понять как это сделать. Только в поиск не посылайте, я уже перерыл целую кучу сайтов. Лучше напишите рабочий код. С коментариями. Зарание спасибо.

Решение задачи: «Клик мышкой»

textual
Листинг программы
 using System.Runtime.InteropServices;  
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        [DllImport("User32.dll")]
        static extern void mouse_event(MouseFlags dwFlags, int dx, int dy, int dwData, UIntPtr dwExtraInfo);
 
        
        [Flags]
        enum MouseFlags
        {
            Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008,
            RightUp = 0x0010, Absolute = 0x8000
        };
 
        private void button1_Click(object sender, EventArgs e)
        {
            // использование - клик правой примерно в центре экрана
            //(подробнее о координатах, передаваемых в mouse_event см. в MSDN): 
            const int x = 32000;
            const int y = 32000;
 
            mouse_event(MouseFlags.Absolute | MouseFlags.Move, x, y, 0, UIntPtr.Zero);
            mouse_event(MouseFlags.Absolute | MouseFlags.RightDown, x, y, 0, UIntPtr.Zero);
            mouse_event(MouseFlags.Absolute | MouseFlags.RightUp, x, y, 0, UIntPtr.Zero);
 
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы