电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> VB编程>>API实例解析--模拟一次鼠标事件:

API实例解析--模拟一次鼠标事件

来源:洪恩在线 | 2006-12-17 | (有3122人读过)

  使用API函数mouse_event可以模拟一次鼠标事件,比如左键单击、双击和右键单击等。这个实例利用此函数产生了十分有趣的效果,无论鼠标处于屏幕的任何位置,每隔一秒程序会使鼠标在那个位置单击或双击一次,这会给我们造成什么样的混乱呢?试一试就知道了。
  为了学习方便,提供的源码已经作了详细的中文注释,代码参见(VB模拟鼠标的左键单击和右键单击一文)

  先在程序中加入如下的声明后,就能引用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)

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

参数
意义
dwFlags Long,下表中标志之一或它们的组合
dx,dy Long,根据MOUSEEVENTF_ABSOLUTE标志,指定x,y方向的绝对位置或相对位置
cButtons Long,没有使用
dwExtraInfo Long,没有使用
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是相对于屏幕的坐标。

  然后把这些语句放在Timer控件的Timer事件中,就能实现每一定间隔模拟一次鼠标事件了。

VB编程热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号