Sign in to follow this  
Followers 0
iahngy

loop with sleep and stop the loop

6 posts in this topic

Hi ,

is tthere any way to stop the sleep when it sleeping? when i set the sleep a bit long like > 1 min, and I wnt to stop the program it wont stop ..i guess because the sleep still going.

here is my code

GUICreate("My test", 250,100,10,1000) ; will create a dialog box that when displayed is centered
    Opt("GUICoordMode", 1)
    $Button_1 = GUICtrlCreateButton("Run", 11, 11, 50,30)
    $Button_2 = GUICtrlCreateButton("stop", 70, 11,50,30)
    $input1 = GUICtrlCreateInput("180000", 11, 45, 100,30)
 global $input2 = GUICtrlCreateInput("368,317,380,520", 120, 45, 100,30)
    GUISetState() ; will display an  dialog box with 2 button
   global $stop = 0, $in1 = 180000 ;3min
    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()
        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
    Case $msg = $Button_1
    $in1 = GUICtrlRead($input1)
    run10($msg)
                ;Run('notepad.exe') ; Will Run/Open Notepad
            Case $msg = $Button_2
                $stop = 1
        EndSelect
    WEnd
EndFunc   ;==>Example
func run10 ($stop)
   $co = GUICtrlRead($input2)
   $cos = StringSplit($co, ',')
   ;_arraydisplay($cos)
   ;exit
  
   while 1
   WinActivate("[Class:whateverhere]")
   MouseClick("right", $cos[1], $cos[2], 1)
   MouseClick("left", $cos[3], $cos[4], 1) ; from 513
   sleep(120000) ; 2 min
   ConsoleWrite("click" [email="&@crlf"]&@crlf[/email])
   if $stop  = 1 then
   ConsoleWrite('stop')
   ExitLoop
   endif
   WEnd
EndFunc

Share this post


Link to post
Share on other sites



#3 ·  Posted (edited)

$i = 0
Do
     sleep(100)
         If GuiGetMsg() = $GUI_EVENT_CLOSE then
             Exitloop
         EndIf
     $i = $i + 100
Until i = 60000

This sleeps for 100 milliseconds until checking to see if the gui is closed. If it is not closed in 1 minute (ie. 60000 milliseconds) then it ends the loop and returns to the program.

Edited by MuchTex

Share this post


Link to post
Share on other sites

I know this isn't part of your question, but just so you're aware, GUIGetMsg has a sleep in-built to reduce CPU usage.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Thank you MuchTex, Johnone and Guiness. I tried MuchTex 's , it works really well. I m very appreciated.

Share this post


Link to post
Share on other sites

Guiness, the loop only works with guieventclose ...if i make a stop button and press on it with certain code to make it stop it wont.

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  
Followers 0