Клик мышкой - C#
Формулировка задачи:
Здравствуйте. Подскажите плиз, как программно нажать и отпустить левую кнопку мышки.
Тоесть, на форме есть кнопка при нажатии котрой курсор переместится в координаты 150, 150 и с эмулируеться нажати левой кнопки мышки.
Сам не могу понять как это сделать. Только в поиск не посылайте, я уже перерыл целую кучу сайтов. Лучше напишите рабочий код. С коментариями.
Зарание спасибо.
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
// отпустить кнопку
}
}
}Решение задачи: «Клик мышкой»
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);
}
}