Simmy Posted June 16, 2011 Share Posted June 16, 2011 Hi guys hope you are well. I have the following code, which I would like to add to. What I would like to do is explained in the attached snippet, but briefly, I would like to add a button to the form, which when clicked, would fire off whatever is selected in the combo box. Any help greatly appreciated. expandcollapse popup#include <Array.au3> #include <File.au3> #include <GUIComboBox.au3> #include <GUIConstantsEx.au3> _Main() Func _Main() Local $hCombo, $iCombo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Output the exe list to a text file. Skip the echo is on line, by using skip=1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $listpath = @ScriptDir & '\apps\*.exe' RunWait(@ComSpec & ' /c for /f "tokens=* delims=\ skip=1" %a in (''dir /S /B ' & $listpath & ' /A-D'') do @echo %a >> grplist.txt','',@SW_HIDE) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Create a form. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GUICreate('Executables', 500, 300) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Create a combo to hold the data. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;$iCombo = GUICtrlCreateCombo("Select A Folder", 30, 75, 220, 200) ;Don't put a title in as this will create an entry in the combo box. ;$iCombo = GUICtrlCreateCombo("Select A Folder", 30, 75, 220, 200) $iCombo = GUICtrlCreateCombo("", 30, 75, 220, 200) $hCombo = GUICtrlGetHandle(-1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Open the file in order to read it. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $FileOpen = FileOpen('grplist.txt', 0) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Add error-handling for file. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; If $FileOpen = -1 Then MsgBox(0, "Error", "Unable to open file.") Exit EndIf ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Set the data of the combo by looping through the file. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; While 1 $line = FileReadLine($FileOpen) If $line = "" Then ExitLoop If @error = -1 Then ExitLoop GUICtrlSetData($iCombo,$line) Wend ;_FileReadToArray ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Set the default visible entry in the combobox with this function. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; _GUICtrlComboBox_SetEditText($hCombo, "Select A Folder") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Close the file to free resources. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FileClose($FileOpen) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Show the form since forms are hidden by default. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GUISetState(@SW_SHOW) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Keep the form open until you close it. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>_Main Link to comment Share on other sites More sharing options...
guinness Posted June 17, 2011 Share Posted June 17, 2011 GUICtrlRead() - Have a look at the Help File under the Example GUICtrlCreateCombo(). 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 Link to comment Share on other sites More sharing options...
sleepydvdr Posted June 17, 2011 Share Posted June 17, 2011 In your While statement on the button press, include something like this (modify it to fit your variables because you didn't provide enough code to list them all): While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button $programLocation = GUICtrlRead($iCombo) Run ($programLocation) EndSwitch WEnd #include <ByteMe.au3> Link to comment Share on other sites More sharing options...
Simmy Posted June 17, 2011 Author Share Posted June 17, 2011 Thanks again guinness and sleepydvdr. I will try these things out. Link to comment Share on other sites More sharing options...
Simmy Posted June 17, 2011 Author Share Posted June 17, 2011 Hi guys, I have tried to use your logic sleepy and guiness. Thank you so much guys. The code working is below. expandcollapse popup#include <Array.au3> #include <File.au3> #include <GUIComboBox.au3> #include <GUIConstantsEx.au3> _Main() Func _Main() Local $hCombo, $iCombo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Output the exe list to a text file. Skip the echo is on line, by using skip=1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $listpath = @ScriptDir & '\apps\*.exe' RunWait(@ComSpec & ' /c for /f "tokens=* delims=\ skip=1" %a in (''dir /S /B ' & $listpath & ' /A-D'') do @echo %a >> grplist.txt','',@SW_HIDE) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Create a form. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GUICreate('Executables', 500, 300) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Create a combo to hold the data. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;$iCombo = GUICtrlCreateCombo("Select A Folder", 30, 75, 220, 200) ;Don't put a title in as this will create an entry in the combo box. ;$iCombo = GUICtrlCreateCombo("Select A Folder", 30, 75, 220, 200) $iCombo = GUICtrlCreateCombo("", 30, 75, 220, 200) $hCombo = GUICtrlGetHandle(-1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Create a button to press. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $Button1 = GUICtrlCreateButton("Run ", 10, 30, 100) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Open the file in order to read it. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $FileOpen = FileOpen('grplist.txt', 0) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Add error-handling for file. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; If $FileOpen = -1 Then MsgBox(0, "Error", "Unable to open file.") Exit EndIf ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Set the data of the combo by looping through the file. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; While 1 $line = FileReadLine($FileOpen) If $line = "" Then ExitLoop If @error = -1 Then ExitLoop GUICtrlSetData($iCombo,$line) Wend ;_FileReadToArray ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Set the default visible entry in the combobox with this function. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; _GUICtrlComboBox_SetEditText($hCombo, "Select A Folder") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Close the file to free resources. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FileClose($FileOpen) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Show the form since forms are hidden by default. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GUISetState(@SW_SHOW) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Keep the form open until you close it. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Do ;Until GUIGetMsg() = $GUI_EVENT_CLOSE While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $programLocation = GUICtrlRead($iCombo) MsgBox(0, "Error", $programLocation) ;Run ("Notepad") Run ($programLocation) EndSwitch WEnd EndFunc ;==>_Main Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now