Sign in to follow this  
Followers 0
copyleft

How to make GUI box close after menu selection

10 posts in this topic

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.

#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

Share this post


Link to post
Share on other sites



How about something like this:

#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

RAID Calculator | Software Installer

The truth has been suppressed since the dawn of time.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Something like this?:

#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 Files\Internet Explorer\iexplore.exe -k OFFICE.htm")
EndFunc
Func TAIPET()
GUISetState(@SW_HIDE)
run ("C:\Program Files\Internet Explorer\iexplore.exe -k TAIPET.htm")
EndFunc
Func OnExit()
If @GUI_CtrlId = $ExitID Then
EndIf
Exit
EndFunc

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

Add Exit after the Run command(s).

Edited by guinness

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

@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.

#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

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  
Followers 0