/// <summary> /// Returns the number of Displays using the Win32 functions /// </summary> /// <returns>collection of Display Info</returns> public DisplayInfoCollection GetDisplays() { DisplayInfoCollection col = new DisplayInfoCollection(); EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, delegate(IntPtr hMonitor, IntPtr hdcMonitor, ref RectStruct lprcMonitor, IntPtr dwData) { MonitorInfoEx mi = new MonitorInfoEx(); mi.Size = Marshal.SizeOf(mi); bool success = GetMonitorInfo(hMonitor, ref mi); if (success) { DisplayInfo di = new DisplayInfo(); di.hdcMonitor = hdcMonitor; di.hMonitor = hMonitor; di.ScreenWidth = (mi.Monitor.Right - mi.Monitor.Left); di.ScreenHeight = (mi.Monitor.Bottom - mi.Monitor.Top); di.MonitorArea = mi.Monitor; di.WorkArea = mi.WorkArea; di.Availability = mi.Flags.ToString(); di.DeviceName = mi.DeviceName; col.Add(di); } return(true); }, IntPtr.Zero); return(col); }
/// <summary> /// Returns the number of Displays using the Win32 functions /// </summary> /// <returns>collection of Display Info</returns> public static DisplayInfoCollection GetDisplays(float?scale = null, int?offsetX = null, int?offsetY = null) { DisplayInfoCollection col = new DisplayInfoCollection(); EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, delegate(IntPtr hMonitor, IntPtr hdcMonitor, ref Rect lprcMonitor, IntPtr dwData) { MonitorInfo mi = new MonitorInfo(); mi.Size = (uint)Marshal.SizeOf(mi); bool success = GetMonitorInfo(hMonitor, ref mi); mi = mi.Scale(scale ?? 1, offsetX ?? 0, offsetY ?? 0); if (success) { DisplayInfo di = new DisplayInfo(); di.ScreenWidth = (mi.Monitor.Right - mi.Monitor.Left).ToString(); di.ScreenHeight = (mi.Monitor.Bottom - mi.Monitor.Top).ToString(); di.MonitorArea = mi.Monitor; di.WorkArea = mi.WorkArea; di.Availability = mi.Flags.ToString(); col.Add(di); } return(true); }, IntPtr.Zero); col.Sort((x, y) => x.WorkArea.Left.CompareTo(y.WorkArea.Left)); return(col); }
/// <summary> /// Returns the number of Displays using the Win32 functions /// </summary> /// <returns>collection of Display Info</returns> public DisplayInfoCollection GetDisplays() { DisplayInfoCollection col = new DisplayInfoCollection(); EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, delegate(IntPtr hMonitor, IntPtr hdcMonitor, ref Rect lprcMonitor, IntPtr dwData) { MONITORINFO mi = new MONITORINFO(); //MONITORINFOEX mi = new MONITORINFOEX(); mi.Size = (uint)Marshal.SizeOf(mi); bool success = GetMonitorInfo(hMonitor, ref mi); if (success) { DisplayInfo di = new DisplayInfo(); di.ScreenWidth = (mi.Monitor.right - mi.Monitor.left).ToString(); di.ScreenHeight = (mi.Monitor.bottom - mi.Monitor.top).ToString(); di.MonitorArea = mi.Monitor; di.WorkArea = mi.WorkArea; di.Availability = mi.Flags.ToString(); //di.blurb = mi.DeviceName; col.Add(di); } return(true); }, IntPtr.Zero); return(col); }
public static DisplayInfoCollection GetDisplays() { DisplayInfoCollection col = new DisplayInfoCollection(); NativeMethod.EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, delegate (IntPtr hMonitor, IntPtr hdcMonitor, ref RECT lprcMonitor, IntPtr dwData) { col.Add(GetInfo(hMonitor)); return(true); }, IntPtr.Zero); return(col); }
/// <summary> /// Returns the number of Displays using the Win32 functions /// </summary> /// <returns>collection of Display Info</returns> public static DisplayInfoCollection GetDisplays() { DisplayInfoCollection col = new DisplayInfoCollection(); try { EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, delegate(IntPtr hMonitor, IntPtr hdcMonitor, ref Rect lprcMonitor, IntPtr dwData) { MonitorInfoEx mi = new MonitorInfoEx(); mi.Init(); mi.size = Marshal.SizeOf(mi); mi.size = 72; bool success = GetMonitorInfo(hMonitor, ref mi); if (success) { DisplayInfo di = new DisplayInfo(); di.ScreenWidth = (mi.monitor.right - mi.monitor.left).ToString(); di.ScreenHeight = (mi.monitor.bottom - mi.monitor.top).ToString(); di.MonitorArea = mi.monitor; di.WorkArea = mi.work; di.Availability = mi.flags.ToString(); di.DeviceName = mi.DeviceName; col.Add(di); } else { Debug.Log("getting monitor info failed"); } return(true); }, IntPtr.Zero); AddAdditionalInfos(col); } catch (System.Exception e) { Debug.LogError(e); } return(col); }
/// <summary> /// Returns the number of Displays using the Win32 functions /// </summary> /// <returns>collection of Display Info</returns> public static DisplayInfoCollection GetDisplays() { DisplayInfoCollection col = new DisplayInfoCollection(); EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, delegate(IntPtr hMonitor, IntPtr hdcMonitor, ref Rect lprcMonitor, IntPtr dwData) { MonitorInfo mi = new MonitorInfo(); mi.size = (uint)Marshal.SizeOf(mi); bool success = GetMonitorInfoA(hMonitor, ref mi); if (success) { DisplayInfo di = new DisplayInfo(); di.ScreenWidth = (mi.rcMonitor.right - mi.rcMonitor.left).ToString(); di.ScreenHeight = (mi.rcMonitor.bottom - mi.rcMonitor.top).ToString(); di.MonitorArea = mi.rcMonitor; di.WorkArea = mi.rcWork; di.Availability = mi.flags.ToString(); col.Add(di); } return(true); }, IntPtr.Zero); return(col); }
/// <summary> /// Returns the number of Displays using the Win32 functions /// </summary> /// <returns>collection of Display Info</returns> private static void GetDisplays() { Displays = new DisplayInfoCollection(); EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, delegate(IntPtr hMonitor, IntPtr hdcMonitor, ref Rect lprcMonitor, IntPtr dwData) { MonitorInfo mi = new MonitorInfo(); mi.Size = Marshal.SizeOf(mi); bool success = GetMonitorInfo(hMonitor, ref mi); if (success) { DisplayInfo di = new DisplayInfo(); di.ScreenWidth = (mi.Monitor.Right - mi.Monitor.Left).ToString(); di.ScreenHeight = (mi.Monitor.Bottom - mi.Monitor.Top).ToString(); di.MonitorArea = mi.Monitor; di.WorkArea = mi.Work; di.Availability = mi.Flags.ToString(); Displays.Add(di); } return(true); }, IntPtr.Zero); }