zoukankan      html  css  js  c++  java
  • windows下c#模拟鼠标点击

    c#模拟鼠标点击

    需要引用的dll

    C#本身带的类库中没有关于鼠标操作的函数库,需要引用微软的dll,在visual studio中使用 nuget添加 mshtml 即可(Microsoft.mshtml)

    主要函数,及其方法参数释义

    
        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        using System.Runtime.InteropServices;
    
        namespace workhelper
        {
            class MouseHelper
            {
                [System.Runtime.InteropServices.DllImport("user32")]
                public static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, 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;
                [DllImport("user32.dll")]
                public static extern bool SetCursorPos(int X, int Y);
            }
        }
    
    

    SetCursorPos 函数

    把光标移到屏幕的指定位置。(ps:是整个屏幕的坐标,相对于屏幕左上角的绝对位置)

    参数

    • X 指定光标的新的X坐标,以屏幕坐标表示。
    • Y 指定光标的新的Y坐标,以屏幕坐标表示。
      返回值
    • 如果成功,返回非0值
    • 如果失败,返回值是0

    mouse_event 函数

    综合鼠标移动和按钮点击。该方法包含鼠标左右移动及点击操作。
    参数

    • dwFlags 标志位集,指定点击按钮和鼠标动作的多种情况。此参数可以是下列值的某种组合:
    VALUE MEANING
    MOUSEEVENTF_ABSOLUTE dX和dY参数含有规范化的绝对坐标。如果不设置,这些参数含有相对数据:相对于上次位置的改动位置。此标志可设置,也可不设置,不管鼠标的类型或与系统相连的类似于鼠标的设备的类型如何。要得到关于相对鼠标动作的信息,参见下面备注部分
    MOUSEEVENTF_MOVE 鼠标移动
    MOUSEEVENTF_LEFTDOWN 鼠标左键按下
    MOUSEEVENTF_LEFTUP 鼠标左键松开
    MOUSEEVENTF_RIGHTDOWN 鼠标右键按下
    MOUSEEVENTF_RIGHTUP 鼠标右键松开
    MOUSEEVENTF_MIDDLEDOWN 鼠标中键按下
    MOUSEEVENTF_MIDDLEUP 鼠标中键松开
    MOUSEEVENTF_WHEEL 鼠标轮被滚动,如果鼠标有一个滚轮。滚动的数量由dwData给出
    • dx
      指定鼠标沿x轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOUSEEVENTF_ABSOLUTE的设置。给出的绝对数据作为鼠标的实际X坐标;给出的相对数据作为移动的mickeys数。一个mickey表示鼠标移动的数量,表明鼠标已经移动。
    • dy
      指定鼠标沿y轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOUSEEVENTF_ABSOLUTE的设置。给出的绝对数据作为鼠标的实际y坐标,给出的相对数据作为移动的mickeys数。
    • dwData
      如果dwFlags为MOUSEEVENTF_WHEEL,则dwData指定鼠标轮移动的数量。正值表明鼠标轮向前转动,即远离用户的方向;负值表明鼠标轮向后转动,即朝向用户。一个轮击定义为WHEEL_DELTA,即120。如果dwFlagsS不是MOUSEEVENTF_WHEEL,则dWData应为零。
    • dwExtraInfo
      指定与鼠标事件相关的附加32位值。应用程序调用函数GetMessageExtraInfo来获得此附加信息

    使用示例

        MouseHelper.SetCursorPos(Form1.point.X, Form1.point.Y);
        MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
        MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    
  • 相关阅读:
    转:backbone.js源码解析:extend、Backbone.View
    转:前端单元测试总结
    转:JavaScript Promises相当酷:一种有趣的方案库
    npm发布模块
    转:nodejs npm常用命令
    nodejs守护进程forever
    转:SublimeText2 快捷键一览表
    转载7 Essential JavaScript Functions
    用node生成svg图片
    关于performance
  • 原文地址:https://www.cnblogs.com/falcon-fei/p/11396740.html
Copyright © 2011-2022 走看看