public static WindowInfo GetWindowInfo(IntPtr hwnd) { WindowInfo result = null; Platform.WindowInfo windowInfo = new Platform.WindowInfo(); Platform.User32.GetWindowInfo(hwnd, ref windowInfo); Rectangle bounds = windowInfo.rcWindow.ToRectangle(); string title = GetWindowText(hwnd); bool isVisible = Platform.User32.IsWindowVisible(hwnd); WindowPlacement placement = WindowPlacement.Default; User32.GetWindowPlacement(hwnd, ref placement); ShowWindowCommands windowCommands = placement.ShowCmd; Rectangle normalBounds = placement.NormalPosition.ToRectangle(); int zOrder = GetZOrder(hwnd); //result = new WindowInfo(hwnd, title, isVisible, bounds); result = new WindowInfo { Handle = hwnd, Title = title, Visible = isVisible, Bounds = bounds, State = windowCommands, NormalBounds = normalBounds, MinimizedPosition = placement.MinPosition.ToPoint(), MaximizedPosition = placement.MaxPosition.ToPoint(), PlacementFlags = placement.Flags, ZOrder = zOrder, }; return(result); }
public static WindowInfo GetWindowInfo(IntPtr hwnd) { WindowInfo result = null; Platform.WindowInfo windowInfo = new Platform.WindowInfo(); Platform.User32.GetWindowInfo(hwnd, ref windowInfo); Rectangle bounds = windowInfo.rcWindow.ToRectangle(); string title = GetWindowText(hwnd); bool isVisible = Platform.User32.IsWindowVisible(hwnd); WindowPlacement placement = WindowPlacement.Default; User32.GetWindowPlacement(hwnd, ref placement); ShowWindowCommands windowCommands = placement.ShowCmd; Rectangle normalBounds = placement.NormalPosition.ToRectangle(); int zOrder = GetZOrder(hwnd); //result = new WindowInfo(hwnd, title, isVisible, bounds); result = new WindowInfo { Handle=hwnd, Title=title, Visible=isVisible, Bounds=bounds, State=windowCommands, NormalBounds=normalBounds, MinimizedPosition=placement.MinPosition.ToPoint(), MaximizedPosition=placement.MaxPosition.ToPoint(), PlacementFlags=placement.Flags, ZOrder=zOrder, }; return result; }