C#_模拟鼠标操作

一、class

csharp 复制代码
 class MouseHelper
 {
     [DllImport("user32.dll")]
     public static extern bool SetCursorPos(int X, int Y);
     [System.Runtime.InteropServices.DllImport("user32")]
     public static extern int mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
     //移动鼠标 
     public const int MOUSEEVENTF_MOVE = 0x0001;
     //模拟鼠标左键按下 
     public const int MOUSEEVENTF_LEFTDOWN = 0x0002;
     //模拟鼠标左键抬起 
     public const int MOUSEEVENTF_LEFTUP = 0x0004;
     //模拟鼠标右键按下 
     public const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
     //模拟鼠标右键抬起 
     public const int MOUSEEVENTF_RIGHTUP = 0x0010;
     //模拟鼠标中键按下 
     public const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
     //模拟鼠标中键抬起 
     public const int MOUSEEVENTF_MIDDLEUP = 0x0040;
     //标示是否采用绝对坐标 
     public const int MOUSEEVENTF_ABSOLUTE = 0x8000;
     //模拟鼠标滚轮滚动操作,必须配合dwData参数
     public const int MOUSEEVENTF_WHEEL = 0x0800;
     //调用windows的系统锁定
     [DllImport("user32.dll")]
     static extern void BlockInput(bool Block);

 }

二、调用

  前台操作,自行加延迟或锁定键盘鼠标。

csharp 复制代码
 //键盘鼠标锁定
 BlockInput(true);
 //移动鼠标到坐标点
 MouseHelper.SetCursorPos(265,230);
 //鼠标左键单击
 MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
 MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
 //鼠标左键双击
 MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
 MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
 MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
 MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
 //键盘鼠标解锁
 BlockInput(false);
相关推荐
zhangzeyuaaa1 小时前
深入理解 Ruby 运算符:本质、分类、坑点与重载实战
开发语言·前端·ruby
一木 之林1 小时前
DeepSeek Agent 开发(一)
开发语言·前端·javascript
朔北之忘 Clancy1 小时前
青少年软编等考七级题解目录
开发语言·c++·青少年编程·gesp·csp·信奥赛·noi
ss2731 小时前
AI全栈实战 | 3.2-01 Python 基础:四大数据容器怎么选,推导式为什么是 Pythonic 的灵魂
开发语言·人工智能·python
Mr_Macallon1 小时前
C++回顾(基础)(01)
c语言·开发语言·c++·学习
未来之窗软件服务2 小时前
Go 利器 GoReSym:剥离符号恢复 Go 二进制元数据—东方仙盟
开发语言·golang·仙盟创梦ide·东方仙盟
朝朝辞暮i2 小时前
C++ 第 32 课:main()、rclcpp::init()、spin()、shutdown()
开发语言·c++·算法
旋生万物2 小时前
螺旋角分布的功率谱分析:多窗谱 + FDR 校正
开发语言·python
沫璃染墨3 小时前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理
时间的拾荒人3 小时前
Qt 窗口系统详解:从菜单栏到对话框的完整指南
开发语言·qt·面试