Jump to content
Sign in to follow this  
souldjer777

If Gui Label doesn't exist Gui goes into infinite loop

Recommended Posts

Good Afternoon All :dance:

Let me start by saying... I'm not sure if this belongs in the GUI part of the forum as it's more of a loop / code / dynamic GUI layout issue. I understand if you move it though.

I have been doing some crazy things in AutoIT lately and one of them just so happens to be an accidental infinite loop. :naughty:

I am dynamically populating my GUI labels... so that means if I have a users ip address I create

$L_PP1_WhoISSearch

However, if I assign a function to a non existent label... for instance a user has no ip address or it is invalid, I get an infinite loop / crash.

The While loop below just goes crazy running ShellExecute.  Since the label $L_PP1_WhoISSearch doesn't exist, the function WhoISSearch() just runs ShellExecute to infinity... What should I do differently??? Is there a trigger I can set in the Gui to ignore missing cases??? Sorry, I can only provide "snippets" of my code since it's for work. Thanks you all!!!

; This is my loop of doom if the $L_PP1_WhoISSearch doesn't exist in my gui.
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $L_PP1_DashboardLink
            DashboardLink01()
        Case $L_PP1_WhoISSearch
            WhoISSearch()
        Case $B_PP1_BACK02
            GUIDelete()
            Gui01_PP_INC()
        Case $B_PP1_EXIT02
            Exit
    EndSwitch
WEnd

Func WhoISSearch()

ShellExecute('http://whois.arin.net/rest/nets;q=' & $PP1_SourceIPClick01 & '?showDetails=true&showARIN=false&showNonArinTopLevelNet=false')

;MsgBox (0, "", 'WTF')

EndFunc
; This is my dynamic label for my Gui.
        ElseIf $i = 5 Then

        $L_PP1_SourceIP = GUICtrlCreateLabel($LabelVariable & ' ' & $aArray_Variable_PP_Gui01[$i], 10, $L_PP1_Var_StartHeight, 316, 19)
        GUICtrlSetFont(-1, 10, 800, 0, "Calibri")
        $L_PP1_Var_StartHeight += 22

        $L_PP1_WhoISSearch = GUICtrlCreateLabel('WhoIS Search: ' & $PP1_SourceIPClick01, 10, $L_PP1_Var_StartHeight, 316, 19)
        GUICtrlSetFont(-1, 10, 800, 0, "Calibri")
        GUICtrlSetColor(-1, 0x0000FF)
        $L_PP1_Var_StartHeight += 22

 


"Maybe I'm on a road that ain't been paved yet. And maybe I see a sign that ain't been made yet"
Song Title: I guess you could say
Artist: Middle Class Rut

Share this post


Link to post
Share on other sites

Assign a value to the variable $L_PP1_WhoISSearch, 9999 should be sufficient for the initial value. Then the Switch won't action on it.

Are you actually using the label as a button?


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

Share this post


Link to post
Share on other sites

Yes, I'm using the label as a button... you're right. I just like the look of it. What does the 9999 do - sorry could you explain a wee bit more :idiot: I don't understand...

UPDATE: Nevermind and Thank you BrewManNH !!!

More from za googlez!

; Predeclare the variables with dummy values to prevent firing the Case statements

I SPENT FOREVER ON THIS... SO THANK YOU AGAIN :sorcerer:

Edited by souldjer777

"Maybe I'm on a road that ain't been paved yet. And maybe I see a sign that ain't been made yet"
Song Title: I guess you could say
Artist: Middle Class Rut

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  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By chenni037
      I need to save the execution result as a text file. Is there any solution?
      ShellExecute ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] )    if  parameters have " > " can't Execute correctly, 
      Example 1:
      ShellExecute("diskspd.exe", "-b128K  -c64M f:\estfile.dat > test123.txt", "", "", @SW_MAXIMIZE)  ;Error
      ShellExecute("diskspd.exe", "-b128K  -c64M f:\estfile.dat", "", "", @SW_MAXIMIZE)                         ;OK
      Example 2:
      ShellExecute("help", "dir > helpdir.txt", "", "", @SW_MAXIMIZE)  ;Error
      ShellExecute("help", "dir", "", "", @SW_MAXIMIZE)                         ;OK
      T1.au3
    • By Colduction
      Hi guys!, i have a problem to convert Python code to AutoIt code, in fact i had not coded with Python yet!, this code is about permutation a string's case, i will be happy with your comments :)❤;

      Python code:
       
      # Python code to print all permutations # with respect to cases # Function to generate permutations def permute(inp): n = len(inp) # Number of permutations is 2^n mx = 1 << n # Converting string to lower case inp = inp.lower() # Using all subsequences and permuting them for i in range(mx): # If j-th bit is set, we convert it to upper case combination = [k for k in inp] for j in range(n): if (((i >> j) & 1) == 1): combination[j] = inp[j].upper() temp = "" # Printing current combination for i in combination: temp += i print(temp), # Driver code permute("Hello") # This code is contributed by Sachin Bisht
      My code in AutoIt:
      ; https://www.geeksforgeeks.org/permute-string-changing-case/ _PermuteCase("ABC") Func _PermuteCase($sText) If StringRegExp($sText, "^[A-Za-z]{1,}$") Then Local $iLength = StringLen($sText) ; Get length of the text. Local $iMaxPerm = 2 ^ $iLength ; Number of permutations is 2^n Local $sLow_Text = StringLower($sText) ; Converting string to lower case Local $asChrs = StringToASCIIArray($sLow_Text) ; Split the text into array of chars. For $i = 1 To $iMaxPerm Step 1 For $j = 0 To $asChrs[0] ;................................................... Next Next Else Return SetError(-1, 0, "Error: Input is incorrect!") EndIf EndFunc ;==>_PermuteCase  
       
       
       
       
       
      ====================== SOLUTION by @TheXman ======================
       
    • By ambad4u
      Hello and Good Day to All!
      I am trying to install .NET 3.5 on Windows 10 x64bit via autoit (via ShellExecuteWait + PowerShell).
      If I run this line, it will runs without issues:
      ShellExecuteWait('PowerShell.exe', '-executionpolicy Bypass -File "' & @ScriptDir & '\OJP83BU523.ps1' & '"') "OJP83BU523.ps1" contains: DISM /Online /Enable-Feature /FeatureName:NetFX3 /All /Source:D:\Sources\sxs /LimitAccess
      However, since I won't know in advance the drive letter of the "sources" folder, I created a script to generate a PowerShell Script to give a correct path for it.
      With the modified script below, PowerShell only blinks and nothing happens
      ShellExecuteWait('PowerShell.exe', '-executionpolicy Bypass -File "' & @ScriptDir & '\' & $filename & '"') or
      ShellExecuteWait('PowerShell.exe', '-executionpolicy Bypass -File "' & $filename & '"')  
      I wish I know the difference with "$filename" and "\OJP83BU523.ps1" usage, as for me, it should be the same.
      Attached is my entire autoit script.
      any help is appreciated!, many thanks in advance!
      test.au3
    • By iAmNewbe
      I created an application to catch keyboard programmed keys.  Some of the keys open URL's via ShellExecute and then they open in the default browser.

      The problem I am having is that when the browser is opened in this manner 3rd party applications such as Logitech Setpoint for Logitech mouse and keyboards and programs like auto password form filling stop working with the browser.  In the mouse specific situation the Cruise Up and Cruise Down buttons, normally back and forward, do not work. If I open the browser manually via the browsers icon and then press the keyboard buttons to open the web page everything works normally.

      I have two questions:

      1:  Why does 
      ShellExecute("http://www.autoitscript.com") when the browser is not open and then is launched, via the above line, cause third party apps to not be able to interface with the browser?


      2:  What is a better way to launch URL's if not via ShellExecute?


      The application is NOT using #RequireAdmin and is not 64bit.
    • By sosimple
      Is this possible with autoit?
      What I want to do:
      Create a Desctop windows shortcut to run an executable application created with autoit, which shortcut would have some parameters which will send as a variable to the aplicagion .
      For example:
      Create an app : ExampleAppCreatedByAutoit.exe
      Run this with a shortcut which has:  "C:/ExampleAppCreatedByAutoit.exe" -option1
      What I want to do is the ExampleAppCreatedByAutoit.exe take the option1 and do something like this: Shellexecute("c:\myfolder\option1.exe")
      Can I do that?
      Thanks,
×
×
  • Create New...