''-------------------------------------------
''程序说明:
''本例采用API函数实现模拟的鼠标事件,程序运行后会
''产生十分有趣的效果。也来试一试。
''本例中只使用了相对鼠标坐标,我们也可以使用绝对
''鼠标坐标来试一试。
''-------------------------------------------
''【VB声明】
'' 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)
''【说明】
'' 模拟一次鼠标事件
''【备注】
'' 进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
''【参数表】
'' dwFlags -------- Long,下述标志的一个组合
'' MOUSEEVENTF_ABSOLUTE
'' dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 -
'' MOUSEEVENTF_MOVE 移动鼠标
'' MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下
'' MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起
'' MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下
'' MOUSEEVENTF_RIGHTUP 模拟鼠标右键抬起
'' MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下
'' MOUSEEVENTF_MIDDLEUP 模拟鼠标中键抬起
'' dx ------------- Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动''
'' dy ------------- Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动
'' cButtons ------- Long,未使用
'' dwExtraInfo ---- Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序
Option Explicit
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 _
)
''Option_Tag标示选择了哪一种模拟事件
Dim Option_Tag As Integer
''OnTest标示是否处于模拟状态,以便我们停止模拟
Dim OnTest As Boolean
''对API变量的定义
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
''控制 模拟的开始与结束
Private Sub Command1_Click()
''如果不处于模拟状态
If OnTest = False Then
Command1.Caption = "快停下来吧"
Timer1.Enabled = True
OnTest = True
''如果处于模拟状态
Else
Command1.Caption = "试一试"
Timer1.Enabled = False
OnTest = False
End If
End Sub
''窗体加载时一些变量需要设置
Private Sub Form_Load()
Option_Tag = 1
Timer1.Enabled = False
OnTest = False
End Sub
''选择了模拟“鼠标左键单击事件”
Private Sub Option1_Click()
Option_Tag = 1 ''左键单击事件
Option2.Value = False
Option3.Value = False
End Sub
''选择了模拟“鼠标右键单击事件”
Private Sub Option2_Click()
Option_Tag = 2 ''右键单击事件
Option1.Value = False
Option3.Value = False
End Sub
''选择了模拟“鼠标双击事件”
Private Sub Option3_Click()
Option_Tag = 3 ''双击事件
Option1.Value = False
Option2.Value = False