使用API模拟鼠标事件

Code:

 

    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, _
                                                                          ByVal dx As Long, _
                                                                          ByVal dy As Long, _
                                                                          ByVal cButtons As Long, _
                                                                          ByVal dwExtraInfo As Long)

    Const MOUSEEVENTF_LEFTDOWN As Short = &H2S
    Const MOUSEEVENTF_LEFTUP As Short = &H4S
    Const MOUSEEVENTF_MIDDLEDOWN As Short = &H20S
    Const MOUSEEVENTF_MIDDLEUP As Short = &H40S
    Const MOUSEEVENTF_MOVE As Short = &H1S
    Const MOUSEEVENTF_ABSOLUTE As Short = &H8000S
    Const MOUSEEVENTF_RIGHTDOWN As Short = &H8S
    Const MOUSEEVENTF_RIGHTUP As Short = &H10S

 

--------------------------------------------------------------------------------

 

先在程序中加入如下的声明后,就能引用mouse_event函数:
  Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

  其中各个参数的意义如下表所示:

参数
意义
dwFlagsLong,下表中标志之一或它们的组合
dx,dyLong,根据MOUSEEVENTF_ABSOLUTE标志,指定x,y方向的绝对位置或相对位置
cButtonsLong,没有使用
dwExtraInfoLong,没有使用
dwFlags常数
意义
MOUSEEVENTF_MOVE&H1,移动鼠标
MOUSEEVENTF_LEFTDOWN&H2,模拟鼠标左键按下
MOUSEEVENTF_LEFTUP&H4,模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN&H8,模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP&H10,模拟鼠标右键抬起
MOUSEEVENTF_MIDDLEDOWN&H20,模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP&H40,模拟鼠标中键抬起
MOUSEEVENTF_ABSOLUTE&H8000,标示是否采用绝对坐标

  程序中我们这样使用mouse_event函数:

  1、这里是鼠标左键按下和松开两个事件的组合即一次单击:
  mouse_event MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
  2、模拟鼠标右键单击事件:
  mouse_event MOUSEEVENTF_RIGHTDOWN or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
  3、两次连续的鼠标左键单击事件 构成一次鼠标双击事件:
  mouse_event MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

  如上面所示如果我们要使用两个dwFlags常数的组合时,可以用Or将其连接起来。把dx,dy参数都设为0,是指每次模拟事件的位置是鼠标的当前位置,dx,dy在没有使用MOUSEEVENTF_ABSOLUTE标志时是相对于鼠标当前位置的坐标,如果设置为使用绝对坐标,则dx,dy是相对于屏幕的坐标。

 

 

文章出自:http://www.111ccc.cn/Computer/2007/1201/article_452.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值