Jewtus Posted March 23, 2016 Posted March 23, 2016 I'm wondering if there is a way to make a hot key stop performing a function (regardless of the function) without closing the script. What I would like to have happen is when I hit ESC it will stop the function from continuing but it won't close the application. I tried using ExitLoop, but that only works while its inside a loop. Does anyone have suggestions? Here is a sample of my code: expandcollapse popup#include <IE.au3> #include <Misc.au3> Opt("TrayMenuMode", 3) $idLaunch=TrayCreateItem("Launch CTRL+1") TrayCreateItem("") ; Create a separator line. $idExit=TrayCreateItem("Exit") HotKeySet("{ESC}", "Hault") local $oIE While 1 If _IsPressed(11) AND _IsPressed(31) then Open() ;ctrl+1 ;Begin Tray options Switch TrayGetMsg() Case $idLaunch Open() Case $idExit Exit EndSwitch WEnd Func Open() Send("{CtrlUP}") $sURL = "http://www.google.com" Global $oIE = _IECreate($sURL, 0, 1, 1, 1) WinSetState("[ACTIVE]", "", @SW_MAXIMIZE) Sleep(2500) WinSetState("[ACTIVE]", "", @SW_MINIMIZE) Sleep(2500) WinSetState("[ACTIVE]", "", @SW_MAXIMIZE) Sleep(2500) EndFunc Func Hault() Exit EndFunc
rodent1 Posted March 23, 2016 Posted March 23, 2016 If you want to exit the function by pressing ESC without closing the script, you need a local boolean variable, that you initialize this way: Local $bExitNow = False Your function "Haul() needs to change to this: Func Haul() $bExitNow = true EndFunc Then you insert these lines in your Open() function wherever you want to stop it, probably in front of each WinSetState line and each Sleep line If $bExitNow = true then $bExitNow = False ; this will keep the ESC keypress effect temporary ExitFunction EndIf I hope that solves your problem Xavier
Jewtus Posted March 25, 2016 Author Posted March 25, 2016 I'm not sure I understand. I added this code, but it is saying that "ExitFunction" is not defined. If I use an exit command, it exits the entire script. What am I missing? I need it to only halt the function.
Moderators Melba23 Posted March 25, 2016 Moderators Posted March 25, 2016 Jewtus. The Interrupting a running function tutorial in the Wiki shows how you do this. 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
Jewtus Posted March 25, 2016 Author Posted March 25, 2016 (edited) ahhh ok I get it. Pretty simple once you see it in action. Thanks all Edited March 25, 2016 by Jewtus
Moderators Melba23 Posted March 25, 2016 Moderators Posted March 25, 2016 Jewtus, Quote Pretty simple once you see it in action Delighted the tutorial helped - makes writing it worthwhile when you get comments like that. 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
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