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...
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...
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
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Idle_Mind my friend.. I can't believe! YOU DID IT AGAIN! THAT'S ABSOLUTELY PERFECT! THANKS SO MUCH! :)
'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