Sign in to follow this  
Followers 0
xboi209

Function inside a While statement

9 posts in this topic

So I've been having trouble with AutoIt, I'm putting a function inside a While statement but it doesn't appear to work. Inside my function, I have a IF...Then statement that will create a msgbox. If I start my AutoIt script first and then make the If...Then statement true, the msgbox doesn't appear.

Func somefunction()
    If $variable = 1 Then
      MsgBox(0, "", "message")
    EndIf
EndFunc


While $Process > 1
    somefunction()
WEnd

Share this post


Link to post
Share on other sites



So I've been having trouble with AutoIt, I'm putting a function inside a While statement but it doesn't appear to work. Inside my function, I have a IF...Then statement that will create a msgbox. If I start my AutoIt script first and then make the If...Then statement true, the msgbox doesn't appear.

The current posted snippet will never show the msgbox.

Post something that demonstrates your problem and we can run.

@mihaibr, not sure why you replied with this modified code and no comments. Agree some sleep() is needed in the loop to avoid CPU hunger, but don't see what the IF change will do in this case.


Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

@Jos, the reason why I did'n post any comment is that I was hurrying.

I was thinking that, in this case, will be good to add a Sleep there.

The "IF change" do the same thing, but if he got just one expression in the "IF" is ok to write it like that, is easier.

Share this post


Link to post
Share on other sites

My advice for you mihaibr, if you don't have enough time then post later on when you do, else it causes more problems than fixes them.


_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

#6 ·  Posted (edited)

Ok guys! Sorry about that,I was trying to help him but I was in a rush.

@xboi209

can you post the full code?

Edited by mihaibr

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

I posted an example that's down to the basics so you guys could hopefully be able to resolve my problem but here's a bigger portion:

Global $Process = WinGetProcess("Brood War")
Global $PID = _MemoryOpen($Process)
Global $ingame = _MemoryRead(0x6D11EC, $PID, "byte")
Global $multicommand = _MemoryRead(0x59723D, $PID, "byte")

Func read()
If $multicommand >= 13 AND $ingame = 1 Then
MsgBox(0, "Notice", "Multicommand: " & $multicommand)
EndIf
EndFunc

While $Process > 1
read()
WEnd

@Jos

Can you explain why my first example will never show the msgbox? I could make the If...Then statement true whenever I want so I don't understand why it wouldn't show.

Edited by xboi209

Share this post


Link to post
Share on other sites

You're global variables are only being updated once, so their values never change. You need to move where the assignment occurs so that they get updated.

P.S. Expect your thread to get locked because it appears that you are attempting to interact with a game, which is against the forum rules.

Share this post


Link to post
Share on other sites

xboi209,

I have already pointed you to the Forum Rules. The next time you infringe them you get a holiday - capiche? :naughty:

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0