天天看點

C#用mouse_event模拟滑鼠點選的問題

1、首先添加using System.Runtime.InteropServices;

1

2

3

4

5

6

7

8

private

readonly

int

MOUSEEVENTF_LEFTDOWN = 0x0002;

//模拟滑鼠移動

private

readonly

int

MOUSEEVENTF_MOVE = 0x0001;

//模拟滑鼠左鍵按下

private

readonly

int

MOUSEEVENTF_LEFTUP = 0x0004;

//模拟滑鼠左鍵擡起

private

readonly

int

MOUSEEVENTF_ABSOLUTE = 0x8000;

//滑鼠絕對位置

private

readonlyint MOUSEEVENTF_RIGHTDOWN = 0x0008; 

//模拟滑鼠右鍵按下 

private

readonlyint MOUSEEVENTF_RIGHTUP = 0x0010; 

//模拟滑鼠右鍵擡起 

private

readonlyint MOUSEEVENTF_MIDDLEDOWN = 0x0020; 

//模拟滑鼠中鍵按下 

private

readonlyint MOUSEEVENTF_MIDDLEUP = 0x0040;

// 模拟滑鼠中鍵擡起

public

static

extern

void

mouse_event(

int

dwFlags, 

int

dx, 

int

dy, 

int

dwData, 

int

dwExtraInfo);

private

void

button2_Click(

object

sender, EventArgs e)        {            

int

x = 

int

.Parse(textBox1.Text);            

int

y = 

int

.Parse(textBox2.Text);

//絕對位置            mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, x * 65535 / 1600, y * 65535 / 900, 0, 0);//移動到需要點選的位置            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, x * 65535 / 1600, y * 65535 / 900, 0, 0);//點選            mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, x * 65535 / 1600, y * 65535 / 900, 0, 0);//擡起

//相對位置  指的是相對于目前滑鼠的相對位置

mouse_event(MOUSEEVENTF_MOVE , x , y, 0, 0);

//移動            mouse_event(MOUSEEVENTF_LEFTDOWN , x , y, 0, 0);//點選            mouse_event(MOUSEEVENTF_LEFTUP , x , y , 0, 0);//擡起

}