PaLmeTToX Posted February 9, 2015 Share Posted February 9, 2015 Hello All I have an idea that i would like to create a gui that pops up when the middle mouse click & alt is pressed. When pressed a second time it disappears. I would like it to use the MouseGetPos() value to place the gui at the cursor psosition. I am lost and not sure what to do. When I place $aPos = MouseGetPos() inside the loop to refresh the variable , i get error variable is not declared and wont run. When I place the $aPos = MouseGetPos() outside the loop it doesn't refresh the current mouse position and uses the mouse position coordinates at the start of the program and doesn't refresh. Does anyone have any hints? #Region ;************ Includes ************ #Include <GUIConstantsEx.au3> #include <misc.au3> #EndRegion ;************ Includes ************ Example1() Func Example1() Local $msg Local $aPos = MouseGetPos() $GUI2 = GUICreate("CHILD", 110, 10, $aPos[0], $aPos[1]) ; will create a dialog box that when displayed is centered ; Run the GUI until the dialog is closed While 1 Sleep(100) $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop If _IsPressed(04) AND _IsPressed(12) Then If BitAND(WinGetState($GUI2), 2) Then GUISetState(@SW_HIDE, $GUI2) Else GUISetState(@SW_SHOW, $GUI2) EndIf EndIf WEnd GUIDelete() EndFunc ;==>Example1 Thank you for your time Link to comment Share on other sites More sharing options...
Solution JohnOne Posted February 9, 2015 Solution Share Posted February 9, 2015 Nothing springs immediately to mind as to what might be wrong, looks fine except for I'd remove the sleep function. Leave the Local $aPos = MouseGetPos() where it is and add $aPos = MouseGetPos() in loop. Use WinMove to update its position, but only after a check to see if it has actually moved to avoid flicker. PaLmeTToX 1 AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
kylomas Posted February 10, 2015 Share Posted February 10, 2015 PaLmeTToX, See comment in code... #Region ;************ Includes ************ #Include <GUIConstantsEx.au3> #include <misc.au3> #EndRegion ;************ Includes ************ Example1() Func Example1() Local $msg Local $aPos = MouseGetPos() $GUI2 = GUICreate("CHILD", 110, 10, $aPos[0], $aPos[1]) ; will create a dialog box that when displayed is centered ; Run the GUI until the dialog is closed While 1 Sleep(100) $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop If _IsPressed(04) AND _IsPressed(12) Then If BitAND(WinGetState($GUI2), 2) Then GUISetState(@SW_HIDE, $GUI2) Else winmove($gui2,'',mousegetpos()[0], mousegetpos()[1]) ; <--- do something like this (not tested) GUISetState(@SW_SHOW, $GUI2) EndIf EndIf WEnd GUIDelete() EndFunc ;==>Example1 kylomas Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill 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