小弟在写一模拟鼠标的程序.因为刚学不久.想从屏幕的上下左右移动.而且保持一直循环.知道关闭才停止.
刚开始我放了4个timer.但是觉得太麻烦了.所以写了下面这个代码.但是还是不实用.高手能不能帮我简化一下下面的代码.实现鼠标上下左右移动知道终止程序运行才停止.谢谢大家了
Dim i As Long
For i = 1 To 10
SetCursorPos 400, 206
Sleep 1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
For i = 1 To 10
SetCursorPos 267, 328
Sleep 1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
For i = 1 To 10
SetCursorPos 400, 453
Sleep 1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
For i = 1 To 10
SetCursorPos 540, 329
Sleep 1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
刚开始我放了4个timer.但是觉得太麻烦了.所以写了下面这个代码.但是还是不实用.高手能不能帮我简化一下下面的代码.实现鼠标上下左右移动知道终止程序运行才停止.谢谢大家了
Dim i As Long
For i = 1 To 10
SetCursorPos 400, 206
Sleep 1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
For i = 1 To 10
SetCursorPos 267, 328
Sleep 1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
For i = 1 To 10
SetCursorPos 400, 453
Sleep 1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
For i = 1 To 10
SetCursorPos 540, 329
Sleep 1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
Private Declare Function SetCursorPos Lib "user32.dll" (ByVal x As Long, ByVal y As Long) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Const MOUSEEVENTF_LEFTDOWN As Long = &H2
Private Const MOUSEEVENTF_LEFTUP As Long = &H4
Private Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)Private Sub Command1_Click()
Command1.Enabled = False
Dim varArray() As String, i, j, str As String
str = "400,206,267,328,400,453,540,329"
varArray = Split(str, ",")
For i = 1 To 10
For j = 0 To 6 Step 2
SetCursorPos CInt(varArray(j)), CInt(varArray(j + 1))
Sleep 2000
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
Next
End Sub
Command1.Enabled = False
Dim varArray() As String, i, j, str As String
str = "400,206,267,328,400,453,540,329"
varArray = Split(str, ",")
For i = 1 To 10
For j = 0 To 6 Step 2
SetCursorPos CInt(varArray(j)), CInt(varArray(j + 1))
Sleep 500
'mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
'mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Next
Next
Command1.Enabled = True
End Sub
用TIMER吧,中间那些挂起进程的SLEEP就不要用了。