Jump to content

radio button based action on listbox item

Recommended Posts


I've been working on a GUI application whereby I want to perform various actions selected by a radio button against a server located in a list box. I have the code written to the point where it recognizes any of the controls as a single object, i.e. clicking the list box brings me back the server name, pressing the 'ping' button tells me I've pressed it, etc. My problem is performing a conditional statement based on a radio button selection against a listbox item. :idiot:

Below is the code I've written so far:

#include <GUIConstants.au3>
GUICreate("Server Tools"); will create a dialog box that when displayed is centered
; create serverlist
$ServerList = ""

$file = FileOpen("servers.txt", 0); 'servers.txt' contains the name of servers, one per line, to work with
; Check if file opened for reading OK
If $file = -1 Then
   MsgBox(0, "Error", "Unable to open file.")

; Read in lines of text until the EOF is reached
While 1
   $line = FileReadLine($file)
   If @error = -1 Then ExitLoop
   $ServerList = $ServerList & "|" & $line


; create gui
GUICtrlCreateLabel("Pick Your Server From The List At Right", 64, 32, 100, 75)
$ping = GUICtrlCreateRadio("Ping", 65, 125, 75, 25)
GUICtrlSetState($ping, $GUI_UNCHECKED)
$FTP = GUICtrlCreateRadio("FTP", 65, 150, 75, 25)
$close = GUICtrlCreateButton("Exit", 65, 200, 100, 25)
$mylist = GUICtrlCreateList("", 176, 32, 121, 97)
GUICtrlSetLimit(-1, 200); to limit horizontal scrolling
GUICtrlSetData(-1, $ServerList)


$msg = 0
While $msg <> $GUI_EVENT_CLOSE
   $msg = GUIGetMsg()
      Case $msg = ($FTP)
         MsgBox(0, "FTP", "You Checked the FTP Box", 2)
      Case $msg = ($ping)
         MsgBox(0, "Pinging", "You Checked the Ping Box", 2)
      Case $msg = $mylist
         $ServerName = $mylist
         _RunFunc(GUICtrlRead ($ServerName))
      Case $msg = $close
         MsgBox(0, "EXIT", "Closing the Application", 2)
Func _RunFunc($ServerName)
   MsgBox(4096, 'Retail Server', 'ServerName: ' & $ServerName)
EndFunc  ;==>_RunFunc

My goal is to select the desired radio button then select the desired server and have the action from the radio button performed on the server from the listbox that is selected. I'm unsure how to tie in any type of CASE or IF THEN statement to test for $FTP & $mylist or $ping & $mylist. Or am I going about this all wrong, should I be using different control types.

Thanks in advance,


Edited by ZenKensei
Link to post
Share on other sites

I'd use normal buttons instead of radio buttons; however, your GUI should work if you simply modify the Select-Case block:

$ServerSelected = GUICtrlRead($mylist)
     Case $msg = ($FTP)
        MsgBox(0, "FTP", "Would perform something like ftp://" & $ServerSelected, 2)
      ;do FTP stuff....
     Case $msg = ($ping)
        MsgBox(0, "Pinging", "Pinging " & $ServerSelected, 2)
      ;Run("cmd /c ping " & $ServerSelected)
     Case $msg = $close
        MsgBox(0, "EXIT", "Closing the Application", 2)
Edited by CyberSlug
Use Mozilla | Take a look at My Disorganized AutoIt stuff | Very very old: AutoBuilder 11 Jan 2005 prototype I need to update my sig!
Link to post
Share on other sites


First, thanks as always for the response. The help file is of course a necessity, but nothing takes the place of seeing someone else's take on a piece of code. It never occurred to me to use 'normal' buttons, :idiot: I guess it would make more sense in the long run (especially when performing multiple functions from the same script instance), i.e. perform a ping of a server, then an FTP session, then an RClient connection, etc. etc.

Thanks again,


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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...