public static class MouseControl { //下面两个委托和事件 用来给UI显示执行结果的 public delegate void EventLogHandler(string message); public static event EventLogHandler OnEventLog; [DllImport("user32.dll")] static extern void mouse_event(int flags, int dX, int dY, int buttons, int extraInfo); const int MOUSEEVENTF_MOVE = 0x1;//模拟鼠标移动 const int MOUSEEVENTF_LEFTDOWN = 0x2;// const int MOUSEEVENTF_LEFTUP = 0x4; const int MOUSEEVENTF_RIGHTDOWN = 0x8; const int MOUSEEVENTF_RIGHTUP = 0x10; const int MOUSEEVENTF_MIDDLEDOWN = 0x20; const int MOUSEEVENTF_MIDDLEUP = 0x40; const int MOUSEEVENTF_WHEEL = 0x800; const int MOUSEEVENTF_ABSOLUTE = 0x8000; public static void MouseMove(int x,int y) { //控制鼠标移动到坐标x * 65536 / 1920, y * 65536 / 1080这个绝对位置上。1920和1080是电脑屏幕的分辨率 //分辨率要根据自己的电脑设置正确,不然获取到的坐标不准确。 mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, x * 65536 / 1920, y * 65536 / 1080, 0, 0); } public static void MouseClick() { //鼠标在原地左键点击一次(点下和松开) mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); } public static void ShowMessage(string message) { OnEventLog(message); } }
FORM窗体中 给上面类 注册事件执行方法
public Form1() { InitializeComponent(); MouseControl.OnEventLog += MouseControl_OnEventLog; Control.CheckForIllegalCrossThreadCalls = false;//取消线程间的安全检查 } //显示执行记录的方法 private void MouseControl_OnEventLog(string message) { this.textBoxLog.Text += DateTime.Now.ToString("HH:mm:ss.fff") + ":" + message + "\r\n"; }
然后再其他类中需要显示信息,只需要调用 control类调用这个方法就可以,由于是静态类,所以任何地方都可以使用
,MouseControl.ShowMessage("执行完毕");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端