最近要用到c#进行模拟鼠标操作,所以也简单的学习了一下c#进行模拟鼠标操作 自己记录下来,以备后用:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
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 readonly int MOUSEEVENTF_RIGHTDOWN = 0x0008; //模拟鼠标右键按下
private readonly int MOUSEEVENTF_RIGHTUP = 0x0010; //模拟鼠标右键抬起
private readonly int MOUSEEVENTF_MIDDLEDOWN = 0x0020; //模拟鼠标中键按下
private readonly int MOUSEEVENTF_MIDDLEUP = 0x0040;// 模拟鼠标中键抬起
[DllImport("user32")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//int x = int.Parse(textBox1.Text);
//int y = int.Parse(textBox2.Text);
int x = 357;
int y = 423;
//绝对位置
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, x * 65535 / 1920, y * 65535 / 1080, 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);//抬起
Thread.Sleep(2000);
//类型
int q = 970; int w = 580;
//方向
int a = 795; int r = 613;
//汇
int t = 871; int z = 642;
//卖出
int s = 999; int d = 678;
//确定
int f = 802; int g = 784;
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, q * 65535 / 1920, w * 65535 / 1080, 0, 0);//移动到需要点击的位置
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, q * 65535 / 1600, w * 65535 / 900, 0, 0);//点击
mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, q * 65535 / 1600, w * 65535 / 900, 0, 0);//抬起
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, a * 65535 / 1920, r * 65535 / 1080, 0, 0);//移动到需要点击的位置
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, a * 65535 / 1600, r * 65535 / 900, 0, 0);//点击
mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, a * 65535 / 1600, r * 65535 / 900, 0, 0);//抬起
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, t * 65535 / 1920, z * 65535 / 1080, 0, 0);//移动到需要点击的位置
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, t * 65535 / 1600, z * 65535 / 900, 0, 0);//点击
mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, t * 65535 / 1600, z * 65535 / 900, 0, 0);//抬起
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, s * 65535 / 1920, d * 65535 / 1080, 0, 0);//移动到需要点击的位置
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, s * 65535 / 1600, d * 65535 / 900, 0, 0);//点击
mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, s * 65535 / 1600, d * 65535 / 900, 0, 0);//抬起
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, f * 65535 / 1920, g * 65535 / 1080, 0, 0);//移动到需要点击的位置
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, f * 65535 / 1600, g * 65535 / 900, 0, 0);//点击
mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, f * 65535 / 1600, g * 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);//抬起
}
获取xy鼠标的坐标可以用鼠标可以去网上下载