C#用mouse_event模拟鼠标点击的问题
2024-09-12 01:54:00
1、首先添加using System.Runtime.InteropServices;
2、为鼠标添加模拟点击的各种参数
//鼠标事件 因为我用的不多,所以其他参数没有写
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; // 模拟鼠标中键抬起 |
3、为鼠标点击添加点击函数
1
2
3
4
5
6
|
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);//抬起 } |
最新文章
- PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
- AD域组策略-只显示指定的控制面板选项配置方法
- c# WebClient Get Post 方法
- CSS3的@keyframes用法详解:
- python基础知识---数据结构之间的转换
- I am Nexus Master!(虽然只是个模拟题。。。但仍想了很久!)
- Web前端入门了解
- CF440C
- 利用JSONP进行水坑攻击
- IIS7 503错误 Service Unavailable
- AWS ElastiCache 使用笔记
- 使用iOS8 WKWebView的浏览器模块,脉冲动画层-b
- Swift - 18 - 数组的基础操作
- 搭建 vue2 单元测试环境(karma+mocha+webpack3)
- java常用API的总结(1)
- OS模块学习
- Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
- Java中夏令时带来的Date不一致问题 (转)
- 使用 nw-builder 构建跨平台桌面应用程序
- 简易 PHP 教程小记
热门文章
- ExcelHelper based on NPOI
- 博文与文档发布玩法:Github + MWeb + 语雀 + Cnbolgs
- Python - File - 第十八天
- oracle 主键生成策略-sequence序列+trigger触发器
- ubuntu 18.04 修改Apache默认目录
- 深入理解Vue组件3大核心概念
- pycharm 配置使用 flake8 进行语法检测
- Golang 需要避免踩的 50 个坑(三)
- python中优雅的杀死线程
- springcloud学习之路: (五) springcloud集成SpringCloudConfig分布式配置中心