C#调用API(User32.dll),mouse_event函数详解。

本文详细介绍了在C#中如何使用mouse_event函数来模拟鼠标动作,包括鼠标点击、移动及滚轮操作等,并提供了具体的参数说明和使用示例。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值