Jump to content



Photo

Find Control...Please Help !


  • Please log in to reply
3 replies to this topic

#1 DrH

DrH

    Seeker

  • Active Members
  • 19 posts

Posted 12 May 2011 - 06:03 PM

I want to find a control in a gui using x y position ,for exemple : findcontrol($handleofgui,$x,$y) and return control handle
Thank You





#2 Melba23

Melba23

    Yes, me!

  • Moderators
  • 15,374 posts

Posted 12 May 2011 - 07:42 PM

DrH,

To what end? :unsure:

If you want to action the control using ControlClick then you can already define the control using the coordinates as a parameter. Look at <Using Autoit - Controls> in the Help file to see how. :>

M23
StringSize - Automatically size controls to fit text - ExtMsgBox - A user customisable replacement for MsgBox

Toast - Small GUIs which pop out of the Systray - Marquee - Scrolling tickertape GUIs

Scrollbars - Automatically sized scrollbars with a single command - GUIFrame - Subdivide GUIs into many adjustable frames

GUIExtender - Extend and retract multiple sections within a GUI - NoFocusLines - Remove the dotted focus lines from buttons, sliders, radios and checkboxes

ChooseFileFolder - Single and multiple selections from specified path tree structure - - Notify - Small notifications on the edge of the display

RecFileListToArray - An alternative to _FileListToArray with user-defined include/exclude masks, maximum recursion level, sorting and displayed path options

GUIListViewEx - Insert, delete, move, drag and sort ListView items


#3 PsaltyDS

PsaltyDS

    Most Venerable Penguin

  • MVPs
  • 13,279 posts

Posted 12 May 2011 - 08:28 PM

If you know the exact X/Y coordinates of the upper left corner of the control, relative to the the client area of the parent window, then this works:
$hButton = ControlGetHandle($hGUI, "", "[X:100; Y:100]")

Note that works with the coordinate OF THE CONTROL, not just any coordinate in the control.

To find the control by giving an X/Y coordinate somewhere within it, look for use of WindowFromPoint function, but that uses screen relative coordinates:
Plain Text         
#include <GuiConstantsEx.au3> Global $hGUI, $idButton, $hButton $hGUI = GUICreate("Test", 300, 300) $idButton = GUICtrlCreateButton("TEST", 100, 100, 100, 100) GUISetState() While 1     Switch GUIGetMsg()         Case $GUI_EVENT_CLOSE             Exit         Case $idButton             $hButton = ControlGetHandle($hGUI, "", "[X:100; Y:100]")             ConsoleWrite("$idButton = " & $idButton & "; $hButton = " & $hButton & @LF)         Case Else             $avMousePos = MouseGetPos()             $avWinFrmPt = DllCall("user32.dll", "hwnd", "WindowFromPoint", "int", $avMousePos[0], "int", $avMousePos[1])             $hWinFrmPt = $avWinFrmPt[0]             ToolTip("HWND = " & $hWinFrmPt & @LF & "X = " & $avMousePos[0] & "; Y = " & $avMousePos[1])     EndSwitch WEnd


:unsure:
Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

#4 DrH

DrH

    Seeker

  • Active Members
  • 19 posts

Posted 13 May 2011 - 11:01 AM

Thank you PsaktyDS,I use new ChildWindowFromPoint.Thank You AGAIN !




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users