Jump to content

Timer not working during while loop


Recommended Posts

I have a loop that is working perfectly, however I want to set the timer. I do not know why the timer is not working in this instance.  Please see the code below :

#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("MouseCoordMode", 0)
AutoItSetOption('PixelCoordMode', 0) ;Uses pixel coords relative to the defined Window; Utilizes pixel coords based on the entire window in which you are active in.
#include <GUIConstantsEx.au3>
#include <GUIComboBox.au3>


#include <array.au3>
#include <Timers.au3>
#include <File.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
#include <date.au3>

$begin = TimerInit() ;This is just a timer. Imagine starting a stop watch here. $begin is the name of the "stop watch"
While 1


WinActivate("Load and Store New Data")
sleep(1000)

ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 28, 7)  ;; flight download for the home page
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 28, 7)  ;; flight download for the home page
sleep(1000)
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 41, 22)
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 41, 22)



$dif = TimerDiff($begin)
if $dif >= 120000 then exit


Wend

 

What is the problem. Is there other option apart from TimerDiff. Thanks 

Link to comment
Share on other sites

I changed your code a tiny bit so I could test it:

#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("MouseCoordMode", 0)
AutoItSetOption('PixelCoordMode', 0) ;Uses pixel coords relative to the defined Window; Utilizes pixel coords based on the entire window in which you are active in.
#include <GUIConstantsEx.au3>
#include <GUIComboBox.au3>


#include <array.au3>
#include <Timers.au3>
#include <File.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
#include <date.au3>

$begin = TimerInit() ;This is just a timer. Imagine starting a stop watch here. $begin is the name of the "stop watch"
While 1


WinActivate("Calculator")
sleep(1000)

ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 28, 7)  ;; flight download for the home page
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 28, 7)  ;; flight download for the home page
sleep(1000)
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 41, 22)
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 41, 22)



$dif = TimerDiff($begin)
if $dif >= 15000 then
     exit
else 
  MsgBox($MB_SYSTEMMODAL, "Test", "Here @ " & $dif)
endif

Wend

Which seems to work OK for me.... thoughts?

Edit: In case it is not obvious, I changed the WinActivate to Calculator, and added the message box in the final if condition.

 

Edited by SlackerAl

Problem solving step 1: Write a simple, self-contained, running, replicator of your problem.

Link to comment
Share on other sites

3 hours ago, SlackerAl said:

I changed your code a tiny bit so I could test it:

#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("MouseCoordMode", 0)
AutoItSetOption('PixelCoordMode', 0) ;Uses pixel coords relative to the defined Window; Utilizes pixel coords based on the entire window in which you are active in.
#include <GUIConstantsEx.au3>
#include <GUIComboBox.au3>


#include <array.au3>
#include <Timers.au3>
#include <File.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
#include <date.au3>

$begin = TimerInit() ;This is just a timer. Imagine starting a stop watch here. $begin is the name of the "stop watch"
While 1


WinActivate("Calculator")
sleep(1000)

ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 28, 7)  ;; flight download for the home page
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 28, 7)  ;; flight download for the home page
sleep(1000)
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 41, 22)
ControlClick("Load and Store New Data", "", "[CLASS:ThunderRT6DirListBox; INSTANCE:1]", "left", 2, 41, 22)



$dif = TimerDiff($begin)
if $dif >= 15000 then
     exit
else 
  MsgBox($MB_SYSTEMMODAL, "Test", "Here @ " & $dif)
endif

Wend

Which seems to work OK for me.... thoughts?

Edit: In case it is not obvious, I changed the WinActivate to Calculator, and added the message box in the final if condition.

 

 

Thanks is working . Thanks for the correction. The exit was in the same line with then

if $dif >= 15000 then
     exit
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...