xboi209 Posted December 2, 2012 Posted December 2, 2012 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
mihaibr Posted December 2, 2012 Posted December 2, 2012 Func somefunction() If $variable = 1 Then MsgBox(0, "", "message") EndFunc While $Process > 1 somefunction() Sleep(10) WEnd
Developers Jos Posted December 2, 2012 Developers Posted December 2, 2012 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. SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
mihaibr Posted December 2, 2012 Posted December 2, 2012 @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.
guinness Posted December 2, 2012 Posted December 2, 2012 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. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018
mihaibr Posted December 2, 2012 Posted December 2, 2012 (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 December 2, 2012 by mihaibr
xboi209 Posted December 3, 2012 Author Posted December 3, 2012 (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 December 3, 2012 by xboi209
Danp2 Posted December 3, 2012 Posted December 3, 2012 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. Latest Webdriver UDF Release Webdriver Wiki FAQs
Moderators Melba23 Posted December 3, 2012 Moderators Posted December 3, 2012 xboi209,I have already pointed you to the Forum Rules. The next time you infringe them you get a holiday - capiche? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Recommended Posts