CyberSlug 6 Posted January 20, 2005 (edited) I've run into some potential problems with the way hotkeys preempt GUI code..... Example Psuedo-code which could/would crash on occasion with "Array variable subscript badly formatted." Error HotKeySet("{Delete}", "RemoveSelectedControl") ;... Dim $InfoAboutControls[4096] Global $HandleForCurrentControl ;... While 1 $msg = GuiGetMsg() ;.... ;---Code to process moving a control (drag-n-drop)--- If $HandleForCurrentControl > 0 Then;Make sure we have a valid control handle ; ***** oops user pressed Delete key and we get pre-empted ; ***** user removed the selected control. ; ***** Returning from the RemoveSelectedControl function and resuming here: GuiCtrlSetPos($InfoAboutControls[$HandleForCurrentControl], $newLeftPosition, $newTopPosition) EndIf WEnd Func RemoveSelectedControl() $HandleForCurrentControl = -1 EndFunc EDIT: fixed typos If we had some mechanism of denoting a critical section around the If-statement, the problem should be avoided. Edited January 20, 2005 by CyberSlug Use Mozilla | Take a look at My Disorganized AutoIt stuff | Very very old: AutoBuilder 11 Jan 2005 prototype I need to update my sig! Share this post Link to post Share on other sites
Jon 1,009 Posted January 21, 2005 I've run into some potential problems with the way hotkeys preempt GUI code.....Example Psuedo-code which could/would crash on occasion with "Array variable subscript badly formatted." ErrorHotKeySet("{Delete}", "RemoveSelectedControl") ;... Dim $InfoAboutControls[4096] Global $HandleForCurrentControl ;... While 1 $msg = GuiGetMsg() ;.... ;---Code to process moving a control (drag-n-drop)--- If $HandleForCurrentControl > 0 Then;Make sure we have a valid control handle ; ***** oops user pressed Delete key and we get pre-empted ; ***** user removed the selected control. ; ***** Returning from the RemoveSelectedControl function and resuming here: GuiCtrlSetPos($InfoAboutControls[$HandleForCurrentControl], $newLeftPosition, $newTopPosition) EndIf WEnd Func RemoveSelectedControl() $HandleForCurrentControl = -1 EndFuncEDIT: fixed typos If we had some mechanism of denoting a critical section around the If-statement, the problem should be avoided.Should be easy enough. Just a EnterCriticalSection() and LeaveCriticalSection() set of functions that disable adlib/hotkeys/onevents. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/ Share this post Link to post Share on other sites
CyberSlug 6 Posted March 13, 2005 * BUMP * due to the activity on 3.1.0++ Use Mozilla | Take a look at My Disorganized AutoIt stuff | Very very old: AutoBuilder 11 Jan 2005 prototype I need to update my sig! Share this post Link to post Share on other sites