Jump to content
Sign in to follow this  
great77

Timer not working during while loop

Recommended Posts

great77

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 

Share this post


Link to post
Share on other sites
SlackerAl

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.

Share this post


Link to post
Share on other sites
great77
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

Share this post


Link to post
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
Sign in to follow this  

  • Similar Content

    • nooneclose
      By nooneclose
      Good morning everyone, I thought I had already solved this issue but it turns out I did not. 
      My code finds unread emails with this specific subject line of "request" but when I change the subject to SKIPPED + "request" = ("SKIPPED request") the program still finds the email and tries to process it. I only want to process emails with the exact match subject of "request".
      Here is my code that "finds" the unread emails with the subject of "request" or so I thought. 
      Func ListUnreadEmails() ;******************************************************************************* ; Lists all unread E-mails from the folder Outlook-UDF-Test ;******************************************************************************* ; Stores all the unRead emails into an array Global $aItems = _OL_ItemFind($oOutlook, "*\Outlook-UDF-Test", $olMail, _ "[UnRead]=True", "Subject", "request", "EntryID,Subject", "", 1) ; Displays the array of unRead emails If IsArray($aItems) Then ;_ArrayDisplay($aItems, "OutlookEX UDF: _OL_ItemFind - Unread mails") Else MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", _ "Could not find an unread mail. @error = " & @error & ", @extended: " & @extended) EndIf ; Gets the number of unread emails Global $numberOfUnRead = UBound($aItems, $UBOUND_ROWS) - 1 ;MsgBox("", "Number of Unread emails", $numberOfUnRead) EndFunc It acts as if any part of the subject containing the word "request" and the email is unread that it will try to process it. (I think)
    • KhalidAnsari
      By KhalidAnsari
      Hi,
      I need to automate Java application using AutoIt, I have refer forum for the same, as per forum I am using Java Access Bridge to finding control name. But could not set value to control. Below is my sample code 
      Send("#r")
      sleep(1500)
      Send("D:\javaapplication\javaapplication\Hello.jar{Enter}")
      WinActivate("Penjumlahan")
      sleep(1500)
      ControlSetText("Penjumlahan", "", "Name:  A :", "demo")
      Java Application and Java Ferret screen

    • QaisBsharat
      By QaisBsharat
      Hello, 
      May i know how can i automation qt application?
      Using controlclick not mouse and positions
       
      Thanks
    • nooneclose
      By nooneclose
      Good afternoon, I am in need of some help. I am sure this is a stupid question requiring only one or two lines of code. However, I would greatly appreciate the help I cannot figure this out. I also tried searching for the answer on the internet but no one except me apparently seems to be having a hard time figuring this out and or is asking about it. 
      I simply want to change the "status" of an email from unread to read once I have processed it. My code is over 500 lines and I would like not to clutter this post with it. Assume I have all my includes and connections properly defined and stuff. 
      Here is the bit of code where I am trying to change the email that was used from unread to read:
      Func ChangeEmailStatus() ;******************************************************************************* ; changes the status of an email from unread to Read ;******************************************************************************* Local $iRows = UBound($aItems, $UBOUND_ROWS) MsgBox("", "Number of Unread emails (Before Change)", $iRows) _OL_ItemModify($oOutlook,$aItems[$i][0], Default, "Read=True") MsgBox("", "Array Display 1", $aItems[1][0]) MsgBox("", "Array Display 2", $aItems[2][0]) Local $iRows = UBound($aItems, $UBOUND_ROWS) MsgBox("", "Number of Unread emails (After Change)", $iRows) EndFunc  
    • SharpDressedMan
      By SharpDressedMan
      Hello,
      Is there any way to check for validity of a pointer to a DllStruct ?
      In the above code, a DllStruct is created from an invalid pointer. How to prevent from doing this ?
      local $tStruct = DllStructCreate("int i") DllStructSetData($tStruct, "i", 123) local $pStruct = DllStructGetPtr($tStruct) $tStruct = 0 ; destroy DllStruct ==> $pStruct becomes invalid ; how to check here for validity of $pStruct and prevent from doing the following ? $tStruct = DllStructCreate("int i", $pStruct) ; create DllStruct from invalid pointer... MsgBox(0, @ScriptName, @error) ; displays '0' : invalid pointer is not detected by DllStructCreate() MsgBox(0, @ScriptName, IsDllStruct($tStruct)) ; displays '1' : tStruct is assumed as a valid DllStruct object, which is not Thanks for help
×