Jump to content

Turn off Recursion level


Go to solution Solved by BrewManNH,

Recommended Posts

Hello, I did not know how to word the title but basically my script gives me this message after a few minutes,

Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.

How do I turn off this feature and prevent this message? Here is my script,

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=upload.ico
#AutoIt3Wrapper_Res_Language=1033
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
FileInstall("D:\upload2.ico", @ScriptDir & "\upload2.ico")
FileInstall("D:\upload.ico", @ScriptDir & "\upload.ico")
;$set = 0
pingfunc()
Func pingfunc()
    $ping = Ping("google.com")
    If $ping = 0 or $ping = 1 or $ping = 2 or $ping = 3 or $ping = 4 Then
        TraySetIcon(@ScriptDir & "\upload2.ico")
        ;If $set = 0 Then
        ;   MsgBox(64, "Network Offline", "Your OFFLINE!")
        ;   $set = 1
        ;EndIf
        pingfunc()
    EndIf
    ;If $set = 1 Then
    ;   $set = 0
    ;   MsgBox(64, "Network Online", "Your ONLINE!")
    ;EndIf
    TraySetIcon(@ScriptDir & "\upload.ico")
    pingfunc()
EndFunc   ;==>pingfunc

online.png?theme=dark profile for Tom on Stack Exchange, a network of free, community-driven Q&A sites 

scientia potentia est

Link to comment
Share on other sites

  • Solution

First off, you can't turn it off. It's telling you that you've seriously screwed up somewhere within your script and it's preventing a catastrophe.

Second, you're getting that warning because you're calling pingfunc() from within itself, you shouldn't be doing that.

Third, you're not reading the return from Ping correctly, it returns 0 if it can't reach the target, @error gets set to any of the other numbers you're looking for, not the return from ping.

Try it this way.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=upload.ico
#AutoIt3Wrapper_Res_Language=1033
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
FileInstall("D:\upload2.ico", @ScriptDir & "\upload2.ico")
FileInstall("D:\upload.ico", @ScriptDir & "\upload.ico")
;$set = 0
pingfunc()
Func pingfunc()
    While 1
        $ping = Ping("google.com")
        If $ping = 0 Then
            TraySetIcon(@ScriptDir & "\upload2.ico")
            ;If $set = 0 Then
            ;   MsgBox(64, "Network Offline", "Your OFFLINE!")
            ;   $set = 1
            ;EndIf
        Else
            ;If $set = 1 Then
            ;   $set = 0
            ;   MsgBox(64, "Network Online", "Your ONLINE!")
            ;EndIf
            TraySetIcon(@ScriptDir & "\upload.ico")
        EndIf
        Sleep(1000) ; sleep for 1 second
    WEnd
EndFunc   ;==>pingfunc

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

Edit...beat me to it ^

Use a while loop...no recursion there.  BTW, recursion is when you use a function to call it's self again, and again, and again, etc

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=upload.ico
#AutoIt3Wrapper_Res_Language=1033
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
FileInstall("D:\upload2.ico", @ScriptDir & "\upload2.ico")
FileInstall("D:\upload.ico", @ScriptDir & "\upload.ico")
;$set = 0

While True
    $ping = Ping("google.com")
    If $ping = 0 or $ping = 1 or $ping = 2 or $ping = 3 or $ping = 4 Then
        TraySetIcon(@ScriptDir & "\upload2.ico")
        ;If $set = 0 Then
        ;   MsgBox(64, "Network Offline", "Your OFFLINE!")
        ;   $set = 1
        ;EndIf
    EndIf
    TraySetIcon(@ScriptDir & "\upload.ico")
WEnd
Edited by jdelaney
IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
Link to comment
Share on other sites

Recursion limit is pretty standard in most high-level programming languages.

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 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: 22/04/2018

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...