Jump to content

How to make GUI box close after menu selection


Recommended Posts

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
Link to comment
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
Link to comment
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.

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 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: 22/04/2018

Link to comment
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.

Link to comment
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
Link to comment
Share on other sites

  • 1 month later...

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?

Link to comment
Share on other sites

Add Exit after the Run command(s).

Edited by guinness

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 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: 22/04/2018

Link to comment
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
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...