Sign in to follow this  
Followers 0
PeerMedia

Multiple GUI's and Sleep Function

5 posts in this topic

I have a simple program that runs 2 GUI's (one an embedded IE client and the other a popup that gives instructions to the user on what to do). I need to perform various sleep functions, but the sleep command makes the entire application inactive, is there a way to limit this to just one of the 2 GUI's to sleep? The only alternatives I can come up with is to somehow create an Adlib function to make a GUI inactive until its slept or to simply split this into 2 applications.

Any suggestions on trying to keep this as a single program?

Thank you.

Share this post


Link to post
Share on other sites



If you have a sleep in a guigetmsg loop then it will indeed render the gui useless depending on the length of the sleep.

There are many ways to overcome these things, but I dont want to waste both our times by guessing what you are doing and the structure of your code.


AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites

Plus, GUIGetMsg() has Sleep already built in. What this time is I don't know. Perhaps have a look "AutoIt specific command Line Switches" but more specifically /AutoIt3ExecuteScript, so then you can Run a second Script. OR try using AdLibRegister!


_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

#4 ·  Posted (edited)

I almost never use sleep in a script, because I prefer to use TimerInit and TimerDiff. Instead of pausing the script, you can trigger events as and whenever. It might be worth looking into.

Edited by czardas

Share this post


Link to post
Share on other sites

you can add a check variable and then select two Guigetmsg()

i m not shure but maybe this

Global $check = True
$gui1 = GUICreate("Test",200,200,500,500)
$button11 = GUICtrlCreateButton("Test button", 10, 10)
$button12 = GUICtrlCreateButton("Test button", 10, 40)
$button13 = GUICtrlCreateButton("Change state", 10, 70)
GUISetState()
$gui2 = GUICreate("Test",200,200,700,500)
$button21 = GUICtrlCreateButton("Test button", 10, 10)
$button22 = GUICtrlCreateButton("Test button", 10, 40)
$button23 = GUICtrlCreateButton("Test button", 10, 70)
GUISetState()
While True
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
        Case $gui1
            Switch $nMsg[0]
                Case -3
                    Exit
                Case $button11
                    MsgBox(0, "", "")
                Case $button12
                    MsgBox(0, "", "")
                Case $button13
                    $check = Not $check
                    MsgBox(0, "", "statechanged")
            EndSwitch
        Case $gui2
            If $check = True Then
                Switch $nMsg[0]
                    Case -3
                        GUIDelete($nMsg[1])
                    Case $button21
                        MsgBox(0, "", "")
                    Case $button22
                        MsgBox(0, "", "")
                    Case $button23
                        MsgBox(0, "", "")
                EndSwitch
            EndIf
    EndSwitch
WEnd

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