public static IEnumerable <DISPLAY_DEVICE> EnumerateDisplayDevices(string deviceName = null, EDD_FLAGS flags = EDD_FLAGS.EDD_NONE) { int i = 0; do { var dd = new DISPLAY_DEVICE(); dd.cb = Marshal.SizeOf <DISPLAY_DEVICE>(); if (!EnumDisplayDevicesW(deviceName, i++, ref dd, flags)) { yield break; } yield return(dd); }while (true); }
internal static extern bool EnumDisplayDevicesW([MarshalAs(UnmanagedType.LPWStr)] string lpDevice, int iDevNum, ref DISPLAY_DEVICE lpDisplayDevice, EDD_FLAGS dwFlags);
internal static extern bool EnumDisplayDevices(string lpDevice, int iDevNum, ref DISPLAY_DEVICE lpDisplayDevice, EDD_FLAGS dwFlags);