LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Windows下C#模拟鼠标点击

admin
2021年1月29日 16:16 本文热度 2598

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 标志位集,指定点击按钮和鼠标动作的多种情况。此参数可以是下列值的某种组合:
VALUEMEANING
MOUSEEVENTF_ABSOLUTEdX和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);


该文章在 2021/1/29 16:16:57 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved