Link to home
Start Free TrialLog in
Avatar of HyMaX_2003
HyMaX_2003

asked on

Time interval between lines of code

Hello! I got a code that makes a CTRL + Mouse Click in a specific place of your screen. You define these places to click by typing in a

textbox something like "MouseClick 100, 100" (X and Y coordinates). You can also make a sequence of clicks by typing a command like

that in each line. But there's a problem in that, it's TOO FAST. I need to put intervals between these Mouse Click commands, but I

have no idea how to make it. The code is the following:


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 Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo

As Long)

Private Const VK_CONTROL = &H11
Private Const KEYEVENTF_KEYUP = &H2

Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4

Private tmpData As String

Public Sub MouseClick(x As Long, y As Long)
SetCursorPos x, y
keybd_event VK_CONTROL, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTDOWN, x, y, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, x, y, 0, 0
keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0
End Sub

Private Sub Timer1_Timer()

tmpData = Text1.Text
Dim arrTmp() As String, i As Long, arrVal() As String

If tmpData <> "" Then
arrTmp = Split(tmpData, vbNewLine)
For i = 0 To UBound(arrTmp)
If arrTmp(i) <> "" Then
arrVal = Split(arrTmp(i), " ")
If UBound(arrVal) = 2 Then
MouseClick CLng(Left$(arrVal(1), Len(arrVal(1)) - 1)), CLng(arrVal(2))
Else
MsgBox arrTmp(i), vbCritical, "Error"
End If
End If
Next i
End If

End Sub



I need something like the following, to appear in my textbox:

MouseClick 100, 100
Wait 1 second
MouseClick 100, 100
Wait 0,5 second
...

Can someone help me? Please...
Avatar of mladenovicz
mladenovicz

Try Sleep API

'This project needs a button
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Me.Caption = "Your system will sleep 5 sec."
    'Sleep for 5000 milliseconds
    Sleep 5000
    Me.Caption = ""
End Sub
Private Sub Form_Load()
    Me.Caption = ""
    Command1.Caption = "Sleep ..."
End Sub
Avatar of HyMaX_2003

ASKER

Well but this codes freezes the program completely... I need something like a timer, but I have no idea how to do it using my code...
ASKER CERTIFIED SOLUTION
Avatar of Mike Tomlinson
Mike Tomlinson
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Idle_Mind my friend.. I can't believe! YOU DID IT AGAIN! THAT'S ABSOLUTELY PERFECT! THANKS SO MUCH! :)