Jump to content



Photo

How to make GUI box close after menu selection


  • Please log in to reply
9 replies to this topic

#1 copyleft

copyleft

    Seeker

  • Active Members
  • 47 posts

Posted 09 May 2012 - 03:01 PM

This script works fine except that I want the GUI window to close if the user makes a selection or presses exit. Right now, it only closes if the user clicks exit. Thanks in advance.

Plain Text         
#include <GUIConstantsEx.au3> #include <IE.au3> Opt("GUIOnEventMode", 1) Global $ExitID _Main() Func _Main() Local $SGAID, $TAIPETID GUICreate("LAN Map", 275, 125) GUICtrlCreateLabel("Please choose a LAN Map.", 10, 10) $SGAID = GUICtrlCreateButton("SGA", 10, 50, 70, 20) GUICtrlSetOnEvent($SGAID, "OnSGA") $TAIPETID = GUICtrlCreateButton("TAIPET", 80, 50, 70, 20) GUICtrlSetOnEvent($TAIPETID, "TAIPET") $ExitID = GUICtrlCreateButton("Exit", 150, 50, 50, 20) GUICtrlSetOnEvent($ExitID, "OnExit") GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit") GUISetState() While 1 Sleep(500) WEnd EndFunc Func OnSGA() run ("C:\Program Files\Internet Explorer\iexplore.exe -k OFFICE.htm") EndFunc Func TAIPET() run ("C:\Program Files\Internet Explorer\iexplore.exe -k TAIPET.htm") EndFunc Func OnExit() If @GUI_CtrlId = $ExitID Then EndIf Exit EndFunc








#2 abberration

abberration

    Prodigy

  • Active Members
  • PipPipPip
  • 183 posts

Posted 09 May 2012 - 04:22 PM

How about something like this:

AutoIt         
#include <GUIConstantsEx.au3> #include <IE.au3> $Form1 = GUICreate("LAN Map", 275, 125) GUICtrlCreateLabel("Please choose a LAN Map.", 10, 10) $SGAID = GUICtrlCreateButton("SGA", 10, 50, 70, 20) GUICtrlSetOnEvent($SGAID, "OnSGA") $TAIPETID = GUICtrlCreateButton("TAIPET", 80, 50, 70, 20) GUICtrlSetOnEvent($TAIPETID, "TAIPET") $ExitID = GUICtrlCreateButton("Exit", 150, 50, 50, 20) GUISetState(@SW_SHOW) While 1     $nMsg = GUIGetMsg()     Switch $nMsg         Case $GUI_EVENT_CLOSE             Exit         Case $SGAID             OnSGA()             GUIDelete($Form1)             Exit         Case $TAIPETID             TAIPET()             GUIDelete($Form1)             Exit         Case $ExitID             Exit     EndSwitch WEnd Func OnSGA()     Run("C:\Program Files\Internet Explorer\iexplore.exe -k OFFICE.htm") EndFunc   ;==>OnSGA Func TAIPET()     Run("C:\Program Files\Internet Explorer\iexplore.exe -k TAIPET.htm") EndFunc   ;==>TAIPET


#3 copyleft

copyleft

    Seeker

  • Active Members
  • 47 posts

Posted 09 May 2012 - 07:47 PM

Thanks for your effort. But running it through code check, it's complaining about "EndFunc" in the last line. ;)

#4 notta

notta

    Prodigy

  • Active Members
  • PipPipPip
  • 196 posts

Posted 09 May 2012 - 07:50 PM

I copied abberation's example and I didn't receive any errors. Are you sure you copied the entire code including the last line EndFunc?

#5 guinness

guinness

    guinness

  • MVPs
  • 11,050 posts

Posted 09 May 2012 - 07:51 PM

copyleft,

Try and copy the whole text as you're missing the end part, funny, perhaps if you were called copyright then you would have copied it right.

Example List: _AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_DesktopDimensions()_DisplayPassword()_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()_GUISetIcon()_Icon_Clear()/_Icon_Set()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_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()_StringIsValid()_StringReplaceWholeWord()_StringStripChar()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()AutoIt SearchAutoIt3 PortableAutoItWinGetTitle()/AutoItWinSetTitle()CodingFileInstallrGeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIGetBkColor()LockFile()PasteBinSciTE JumpSignature CreatorWM_COPYDATAMore Examples...Updated: 11/04/2013


#6 copyleft

copyleft

    Seeker

  • Active Members
  • 47 posts

Posted 09 May 2012 - 10:04 PM

I've got the last EndFunc.
I double checked and it does work. When I copied it pasted it from the example it didn't wrap in the autoit script editor. So I may have put an unnecessary line carriage when making the code easier to read. Thanks to all.

#7 TheNorwegianUser

TheNorwegianUser

    Wayfarer

  • Active Members
  • Pip
  • 58 posts

Posted 10 May 2012 - 07:31 PM

Something like this?:

Plain Text         
#include <GUIConstantsEx.au3> #include <IE.au3> Opt("GUIOnEventMode", 1) Global $ExitID _Main() Func _Main() Local $SGAID, $TAIPETID GUICreate("LAN Map", 275, 125) GUICtrlCreateLabel("Please choose a LAN Map.", 10, 10) $SGAID = GUICtrlCreateButton("SGA", 10, 50, 70, 20) GUICtrlSetOnEvent($SGAID, "OnSGA") $TAIPETID = GUICtrlCreateButton("TAIPET", 80, 50, 70, 20) GUICtrlSetOnEvent($TAIPETID, "TAIPET") $ExitID = GUICtrlCreateButton("Exit", 150, 50, 50, 20) GUICtrlSetOnEvent($ExitID, "OnExit") GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit") GUISetState() While 1   Sleep(500) WEnd EndFunc Func OnSGA() GUISetState(@SW_HIDE) run ("C:Program FilesInternet Exploreriexplore.exe -k OFFICE.htm") EndFunc Func TAIPET() GUISetState(@SW_HIDE) run ("C:Program FilesInternet Exploreriexplore.exe -k TAIPET.htm") EndFunc Func OnExit() If @GUI_CtrlId = $ExitID Then EndIf Exit EndFunc


#8 copyleft

copyleft

    Seeker

  • Active Members
  • 47 posts

Posted 28 June 2012 - 10:13 PM

One last loose end on this script.
It works fine, except if any menu selection other than "Exit" is selected, Autoit remains resident in memory and doesn't shut down. Is there a way to make the tray icon go away one I select TAIPET OR SGA?

#9 guinness

guinness

    guinness

  • MVPs
  • 11,050 posts

Posted 29 June 2012 - 06:58 AM

Add Exit after the Run command(s).

Edited by guinness, 29 June 2012 - 06:59 AM.

Example List: _AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_DesktopDimensions()_DisplayPassword()_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()_GUISetIcon()_Icon_Clear()/_Icon_Set()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_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()_StringIsValid()_StringReplaceWholeWord()_StringStripChar()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()AutoIt SearchAutoIt3 PortableAutoItWinGetTitle()/AutoItWinSetTitle()CodingFileInstallrGeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIGetBkColor()LockFile()PasteBinSciTE JumpSignature CreatorWM_COPYDATAMore Examples...Updated: 11/04/2013


#10 copyleft

copyleft

    Seeker

  • Active Members
  • 47 posts

Posted 02 July 2012 - 09:21 PM

@guinness... Thanks for the response. I tried writing exit after each "EndFunc" declaration and, also, just at the end. Tray icon doesn't diappear in either case and AutoIt3_x64.exe remains as a live process.

Plain Text         
#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Open Docs", 468, 231, 262, 194) GUISetIcon("D:1consFolder-Doc.ico", -1) GUISetBkColor(0xC0DCC0) ; GUISetBkColor(0xBFCDDB) GUICtrlSetFont(-1, 11, 800, 0, "MS Sans Serif") $Label1 = GUICtrlCreateLabel("Choose Document Function", 125, 24, 244, 28) GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0x0000FF) ;~ ;---------BUTTONS------------------------------- $PDFID = GUICtrlCreateButton("PDF", 192, 76, 75, 25) GUICtrlSetOnEvent($PDFID, "OnPDF") $DOCSID = GUICtrlCreateButton("My Docs", 284, 76, 75, 25) GUICtrlSetOnEvent($DOCSID, "OnDOCS") $Cre8ID = GUICtrlCreateButton("Create Doc", 374, 76, 75, 25) GUICtrlSetOnEvent($Cre8ID, "OnCre8") $ExitID = GUICtrlCreateButton("Exit", 190, 180, 91, 33) GUISetState(@SW_SHOW) While 1     $nMsg = GUIGetMsg()     Switch $nMsg         Case $GUI_EVENT_CLOSE             Exit Case $PDFID             OnPDF()             GUIDelete($Form1) Case $DOCSID             OnDOCS()             GUIDelete($Form1) Case $Cre8ID             OnCre8()             GUIDelete($Form1)             Exit         Case $ExitID             Exit     EndSwitch WEnd Func OnPDF()     Run("C:Windowsexplorer.exe F:HOMEDocsPDF") EndFunc   ;==>OnPDF Exit Func OnDOCS()     Run("C:Windowsexplorer.exe F:HOMEDocs") EndFunc   ;==>OnDOCS Exit Func OnCre8()     Run("E:PROGRAMSMSOOFFICE11WINWORD.EXE") EndFunc   ;==>OnCr8 Exit ;==>ALSO TRIED SCRIPT WITH JUST THIS ENDING Exit





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users