tweakster2010 Posted January 14, 2015 Posted January 14, 2015 Hello anyone who has a basic way to do this without recoding a lot of what I currently have. Currently I have a Gui set to have a combox and in the combox is a serious of programs and links it launches to make a universal spot for access relating to my job function. In turn I noticed when I scroll or use the arrow keys while in the Combobox it starts launching each option. Ideally I want it only to launch if I click the drop down list and chose the option. I have searched throughout and I found some information but I do not think its exactly what I am trying to accomplish and I have no idea how to accomplish exactly that. I use Cases currently to access the combobox options being selected. If code would be preferred but I do not have any code currently guided to my end goal if that makes sense. Func Program() $hGUI = GUICreate("Logged in as: " & ("info removed ") & StringUpper(GuiCtrlRead($Username)), 300,30) $Runasprogs = GUICtrlCreateCombo("", 5, 5, 275, 20) GUISetState(@SW_SHOW, $hGUI) GUICtrlSetData(-1, "|Test1|Test2|Close", "") While 1 Switch GuiGetMsg() Case $GUI_EVENT_CLOSE Exit Case $Runasprogs Switch GuiCtrlRead($Runasprogs) Case "Test1" ShellExecute("URl of Test") If @error = 1 Then MsgBox(0, "Failure", "An Error has occurred, @extended = " & @extended) Case "Test2" ShellExecute("URl of Test") If @error = 1 Then MsgBox(0, "Failure", "An Error has occurred, @extended = " & @extended) Case "Close" Exit EndSwitch EndSwitch WEnd EndFunc This is a Lowgrade version of what I currently have with the information stripped out (500 lines of code currently). Any help is totally appreciated or a point in the right direction
Solution BrewManNH Posted January 15, 2015 Solution Posted January 15, 2015 Don't use the combobox as a trigger to read from it, use a separate button to trigger the function. #include <GUIConstants.au3> Func Program() $hGUI = GUICreate("Logged in as: " & ("info removed ") & StringUpper(GUICtrlRead($Username)), 300, 30) $Runasprogs = GUICtrlCreateCombo("", 5, 5, 275, 20) GUICtrlSetData(-1, "|Test1|Test2|Close", "") Local $idButton = GUICtrlCreateButton(" Execute ", 300, 5) ; <<<<<<<<<<< GUISetState(@SW_SHOW, $hGUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $idButton ; <<<<<<<<<<< Switch GUICtrlRead($Runasprogs) Case "Test1" ShellExecute("URl of Test") If @error = 1 Then MsgBox(0, "Failure", "An Error has occurred, @extended = " & @extended) Case "Test2" ShellExecute("URl of Test") If @error = 1 Then MsgBox(0, "Failure", "An Error has occurred, @extended = " & @extended) Case "Close" Exit EndSwitch EndSwitch WEnd EndFunc ;==>Program 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 GudeHow 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
tweakster2010 Posted January 15, 2015 Author Posted January 15, 2015 That is what I was looking for thanks, I think my script just got too long and I overlooked a few things. The CtrlSet Data also tried to write the data in the box and I needed to correct that to the $Runasprogs to fix. Appreciate the speedy response too.
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