johnmcloud Posted November 15, 2012 Share Posted November 15, 2012 (edited) Hi guys, I want to know if a user clicks inside or outside the gui For inside, is easy because i can use $GUI_EVENT_PRIMARYDOWN, but outside? #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <Misc.au3> Global $hGUI, $hDLL = DllOpen("user32.dll") $Height = 550 $Width = 500 $hGUI = GUICreate("Test", $Height, $Width, -1, -1) GUISetState() While 1 _Click_Outside_and_Exit() WEnd Func _Click_Outside_and_Exit() Local $pos = MouseGetPos() If _IsPressed(01, $hDLL) Then If $pos[0] > $Height Then Exit EndIf If $pos[1] > $Width Then Exit EndIf EndIf If _IsPressed("1B", $hDLL) Then ; ESC Exit EndIf EndFunc ;==>Test I don't know if is a good approach, some advice? Thanks Edited November 15, 2012 by johnmcloud Link to comment Share on other sites More sharing options...
water Posted November 15, 2012 Share Posted November 15, 2012 When a user clicks outside your GUI the window loses focus and is no longe the active window, right? You could use WinActive to check. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
johnmcloud Posted November 15, 2012 Author Share Posted November 15, 2012 Yes, thanks, i don'0t have think about focus: #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <Misc.au3> Global $hGUI, $hDLL = DllOpen("user32.dll") $Height = 550 $Width = 500 $hGUI = GUICreate("Test", $Height, $Width, -1, -1) GUISetState() While 1 _Click_Outside_and_Exit() WEnd Func _Click_Outside_and_Exit() If _IsPressed(01, $hDLL) Then If Not WinActive($hGUI) Then Exit EndIf EndIf If _IsPressed("1B", $hDLL) Then ; ESC Exit EndIf EndFunc ;==>_Click_Outside_and_Exit 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