/// <summary> /// Get DesktopElement from x, y position /// </summary> /// <param name="xPos"></param> /// <param name="yPos"></param> /// <returns></returns> public static DesktopElement ElementFromPoint(int xPos, int yPos) { try { var uia = UIAutomation.ElementFromPoint(new tagPOINT() { x = xPos, y = yPos }); if (!DesktopElement.IsFromCurrentProcess(uia)) { var e = new DesktopElement(uia, true, false); e.PopulateMinimumPropertiesForSelection(); return(e); } else { Marshal.ReleaseComObject(uia); } } catch { } return(null); }
/// <summary> /// Get DesktopElement from UIAElement interface. /// </summary> /// <param name="uia"></param> /// <returns></returns> private static DesktopElement ElementFromUIAElement(IUIAutomationElement uia) { if (uia != null) { if (!DesktopElement.IsFromCurrentProcess(uia)) { var el = new DesktopElement(uia, true, false); el.PopulateMinimumPropertiesForSelection(); return(el); } else { Marshal.ReleaseComObject(uia); } } return(null); }
/// <summary> /// Get the focused Element /// </summary> /// <returns></returns> public static DesktopElement GetFocusedElement() { try { var uia = UIAutomation.GetFocusedElement(); if (!DesktopElement.IsFromCurrentProcess(uia)) { return(new DesktopElement(uia, true)); } else { Marshal.ReleaseComObject(uia); } } catch { } return(null); }