private static IEnumerable <string> GetAllMonitorsFriendlyNames() { uint pathCount, modeCount; var error = GetDisplayConfigBufferSizes(QueryDeviceConfigFlags.QdcOnlyActivePaths, out pathCount, out modeCount); if (error != ErrorSuccess) { throw new Win32Exception(error); } var displayPaths = new DisplayconfigPathInfo[pathCount]; var displayModes = new DisplayconfigModeInfo[modeCount]; error = QueryDisplayConfig(QueryDeviceConfigFlags.QdcOnlyActivePaths, ref pathCount, displayPaths, ref modeCount, displayModes, IntPtr.Zero); if (error != ErrorSuccess) { throw new Win32Exception(error); } for (var i = 0; i < modeCount; i++) { if (displayModes[i].infoType == DisplayconfigModeInfoType.DisplayconfigModeInfoTypeTarget) { yield return(MonitorFriendlyName(displayModes[i].adapterId, displayModes[i].id)); } } }
private static IEnumerable<string> GetAllMonitorsFriendlyNames() { uint pathCount, modeCount; var error = GetDisplayConfigBufferSizes(QueryDeviceConfigFlags.QdcOnlyActivePaths, out pathCount, out modeCount); if (error != ErrorSuccess) throw new Win32Exception(error); var displayPaths = new DisplayconfigPathInfo[pathCount]; var displayModes = new DisplayconfigModeInfo[modeCount]; error = QueryDisplayConfig(QueryDeviceConfigFlags.QdcOnlyActivePaths, ref pathCount, displayPaths, ref modeCount, displayModes, IntPtr.Zero); if (error != ErrorSuccess) throw new Win32Exception(error); for (var i = 0; i < modeCount; i++) if (displayModes[i].infoType == DisplayconfigModeInfoType.DisplayconfigModeInfoTypeTarget) yield return MonitorFriendlyName(displayModes[i].adapterId, displayModes[i].id); }