api: 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 Const MOUSEEVENTF_LEFTDOWN = &H2 Private Const MOUSEEVENTF_LEFTUP = &H4 Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long '设置鼠标的位置为200,300 SetCursorPos 200,300 '模拟单击操作。 mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
模拟一次鼠标事件Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)参数 类型及说明 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函数可取得这个值。可用的值取决于特定的驱动程序 注解 进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
'Before you start this program, I suggest you save everything that wasn't saved yet. 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 = &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 Form_Activate() Do 'Simulate a mouseclick on the cursor's position mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI DoEvents Loop End Sub
加个定时器,interval设为10000再加一个全局变量i。Dim i As BooleanPrivate Sub Timer1_Timer() If i Then SetCursorPos Val(text1.Text), Val(text2.Text) Else SetCursorPos Val(text3.Text), Val(text4.Text) End If i = Not i End Sub
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 Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
'设置鼠标的位置为200,300
SetCursorPos 200,300
'模拟单击操作。
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
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函数可取得这个值。可用的值取决于特定的驱动程序
注解
进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
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 = &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 Form_Activate() Do
'Simulate a mouseclick on the cursor's position
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI
DoEvents
Loop
End Sub
SetCursorPos val(text1.text),val(text2.text)过十秒再
SetCursorPos val(text3.text),val(text4.text)
.
.
如此不断循环。
If i Then
SetCursorPos Val(text1.Text), Val(text2.Text)
Else
SetCursorPos Val(text3.Text), Val(text4.Text)
End If
i = Not i
End Sub
Else
SetCursorPos Val(text3.Text), Val(text4.Text)
好象起不了作用不能实现10秒钟实现一次SetCursorPos Val(text1.Text), Val(text2.Text)再过10秒钟又实现一次SetCursorPos Val(text3.Text), Val(text4.Text)
1.把boywang(大力水手)的api声明写到一个独立的模块中,并把它每句前面的private去掉。
2.变量i的声明必须是全局级的。并注意你的程序中会不会有其他地方改变了i的值。
3.可把timer1的interval调小一点,例如设为2000,即两秒,就不必等这么长时间了。