VB中模仿鼠标动作

第一个:模仿鼠标按下,就是让鼠标在任何地方单击、双击,是否移动实际鼠标不重要,主要是要求不仅仅在程序本身里面。是否可以实现右键单击?三击可以么?

第二个:模仿鼠标移动,就是让鼠标移动到指定地点,而不经过中间的部分,直接跳过去,怎么做到?

第三个:模仿鼠标拖动,就是在鼠标左键按下的时候,再移动鼠标,最后松开,如何实现?

谢谢了,请分开答。

如果不出意外的话,估计楼主对这个API的使用很难搞懂,一楼说的这些东西到处可以整到,如果要用到实际代码中的话,仅用上面那些是实现不了的。很麻烦,我直接给你写一个练习吧,你就会明白。。。你把这个代码放VB用一下就行了。建一个按钮。。。
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)
'将鼠标移动至指定位置
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
'获取鼠标当前位置
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Const MOUSEEVENTF_LEFTUP = &H4 ' 左键弹起
Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' 左键按下
Private Type POINTAPI
x As Long
y As Long
End Type
Dim po As POINTAPI '获取鼠标位置
Dim poOld As POINTAPI '存储鼠标移动前的位置
'测试,无意义
Private Sub Command1_Click()
Print "Command1.Click"
End Sub
Private Sub Command2_Click()
GetCursorPos poOld
po.x = Command1.Left + Command1.Width / 2 + Me.Left / Screen.TwipsPerPixelX
po.y = Command1.Top + Command1.Height + Me.Top / Screen.TwipsPerPixelY
SetCursorPos po.x, po.y
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
'这里可以放左键按下的任意代码
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
'SetCursorPos poOld.x, poOld.y '这个你可以不要,如果要了这个,就成虚拟鼠标了,也就是这个鼠标在别的地方悄悄地点了一下,但你不会发现他点了。
End Sub

~~~~~~~~~~~~~`
如果你还不明白,你就加我QQ吧。。。已经写的很详细了。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-12
使用API函数mouse_event:
函数如下:
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 标示是否采用绝对坐标
这样就可以实现你的第一和第二
拖动的原理是 鼠标左键按下-移动到坐标-鼠标左键弹起就可以解决3了本回答被网友采纳
第2个回答  2013-09-12
对Mouse_event API函数。它能模拟鼠标的相对/绝对移动和鼠标按键操作