博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#调用API(User32.dll),mouse_event函数详解。
阅读量:5923 次
发布时间:2019-06-19

本文共 1609 字,大约阅读时间需要 5 分钟。

函数功能:该函数综合鼠标击键和鼠标动作。   

VOID mouse_event(

  DWORD dwFlags, // motion and click options

  DWORD dx, // horizontal position or change

  DWORD dy, // vertical position or change

  DWORD dwData, // wheel movement

  ULONG_PTR dwExtraInfo // application-defined information   );

  //MSDN原话

 

C#使用,为了易读,用中文。

   //*****************************************************************

        [DllImport("user32.dll", EntryPoint = "mouse_event")]

        public static extern void 鼠标事件(int 事件对应值, int X坐标, int Y坐标, int 轮子,int 信息);

    //*******************星号内可直接复制运用,加载命名空间即可*****************

   参数1:鼠标事件,在VB与C#,要调用事件需要定义常量,赋与对应值。

   参数2,参数3: 指定x,y标的目标的绝对地位或相对地位

   参数4:如果dwFlags为MOUSEEVENTF_WHEEL,则dwData指定鼠标轮移动的数量。正值表明鼠标轮向前转动,即远离用户

      的方向;负值表明鼠标轮向后转动,即朝向用户。一个轮击定义为WHEEL_DELTA,即120。

        如果dwFlagsS不是MOUSEEVENTF_WHEEL,则dWData应为零。

   参数5:指定与鼠标事件相关的附加32位值。调用函数GetMessageExtraInfo来获得此附加信息。

   

  mouse_event函数,在C#运用与VB差不多,都需要赋相应值才能使用。

    const int MOUSEEVENTF_MOVE = 0 x0001;     // 移动鼠标           (十):1

       const int MOUSEEVENTF_LEFTDOWN = 0 x0002; //模仿鼠标左键按下    (十):2
       const int MOUSEEVENTF_LEFTUP = 0 x0004; //模仿鼠标左键抬起    (十):4
       const int MOUSEEVENTF_RIGHTDOWN = 0 x0008; //模仿鼠标右键按下    (十):8
       const int MOUSEEVENTF_RIGHTUP = 0 x0010; //模仿鼠标右键抬起    (十):16
       const int MOUSEEVENTF_MIDDLEDOWN = 0 x0020;// 模仿鼠标中键按下    (十):32
       const int MOUSEEVENTF_MIDDLEUP = 0 x0040;// 模仿鼠标中键抬起    (十):64
       const int MOUSEEVENTF_ABSOLUTE = 0 x8000; //标示是否采取绝对坐标    (十):32768

  值是用十六进制表示的,转成十进制后也可使用。通常只用到,1,2,4,8,16,32,64.这七个事件。怎么样,看到规律了吧。

  其实我也有尝试用这些值以外的常量调用mouse_event函数,但是效果也貌似相同结果。

  有兴趣大家可尝试一下。不过通常用人家已给定的值就足够了。规范嘛。

  

转载于:https://www.cnblogs.com/LD13/archive/2012/02/16/mouse_event-Function.html

你可能感兴趣的文章
我终于开通了微信公众号
查看>>
Spring3:AOP
查看>>
如何将本地的项目上传到git
查看>>
java结合testng,利用mysql数据库做数据源的数据驱动实例
查看>>
C# 多线程学习系列四之ThreadPool取消、超时子线程操作以及ManualResetEvent和AutoResetEvent信号量的使用...
查看>>
银行传统支付通道与支付平台结合
查看>>
activiti5/6 系列之--Activiti与BPMN2.0规范相关节点对应关系
查看>>
【译文】抽象漏洞法则
查看>>
获取音、视频时长(NAudio,Shell32,FFmpeg)
查看>>
SNMP协议
查看>>
大二结束前的一通胡言乱语
查看>>
sf.net zurückgekommen
查看>>
Java常见疑惑和陷阱
查看>>
关于nand flash的地址 A8,寻址
查看>>
Windows Azure Cloud Service (22) Web Role的Full IIS特性
查看>>
HtmlWeb类
查看>>
LINQ之路12:LINQ Operators之数据转换(Projecting)
查看>>
OpenGL ES for Windows Mobile
查看>>
centos 6.8操作系统安装arcgis server 10.4
查看>>
Raspberrypi安装使用开发简要说明
查看>>