DemonAngel Posted November 26, 2013 Share Posted November 26, 2013 Hi Guys, This is probably a simple question but im bumping my head against a wall currently. I have a script/app that I do not want a use to close by mistake when a certain Task is in progress. As such I created an Exit function and posed a question within the function that asks a user if they are sure they want to exit as the Task is still running. The problem I have is regardless on wether the user clicks on YES or NO the script still exits when it his the end of the function. Here is a sample of my code. expandcollapse popup$oMyError = ObjEvent("AutoIt.Error","MyErrFunc") OnAutoItExitRegister("ExitDaApp") $CaptureStatus = True #include <GUIConstantsEx.au3> #include <TabConstants.au3> #include <WindowsConstants.au3> Global $GuiMain = GUICreate("Test", 943, 523, 176, 129) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch If $CaptureStatus = True Then ReadLogs() EndIf Sleep(10) WEnd ;----------------------------------------------------------------------------- ;ExitDaApp - FUNCTION TO ;----------------------------------------------------------------------------- Func ExitDaApp() SplashOff() If $CaptureStatus = True Then If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer $iMsgBoxAnswer = MsgBox(262420,"EXIT","Capture currently running, Are you sure you want to exit?") If $iMsgBoxAnswer = "6" Then Exit Else Return EndIf Else Exit EndIf EndFunc ;===> ExitDaApp ;----------------------------------------------------------------------------- ;ReadLogs - FUNCTION TO ;----------------------------------------------------------------------------- Func ReadLogs() ;just read through soem log files. EndFunc ;===> ReadLogs Link to comment Share on other sites More sharing options...
Solution JustSomeone Posted November 26, 2013 Solution Share Posted November 26, 2013 Change this While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch If $CaptureStatus = True Then ReadLogs() EndIf Sleep(10) WEnd to this While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ExitDaApp() EndSwitch If $CaptureStatus = True Then ReadLogs() EndIf Sleep(10) WEnd and it will be ok, working for me when changed Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted November 26, 2013 Moderators Share Posted November 26, 2013 DemonAngel,You are checking too late - OnAutoItExit only runs the function once the exit has been initiated and is unstoppable. Run the check as you receive the [X] event so that you can prevent the exit being initiated and then it will work:Case $GUI_EVENT_CLOSE ExitDaApp()Do not forget to remove the OnAutoItExitRegister line. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
DemonAngel Posted November 26, 2013 Author Share Posted November 26, 2013 Lol ... simple ... Thanks guys. 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