麦田

不积跬步无以至千里.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  445 随笔 :: 16 文章 :: 192 评论 :: 95万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
复制代码
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("执行完毕");

 

posted on   一些记录  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示