static extern DISP_CHANGE ChangeDisplaySettingsEx(string lpszDeviceName, ref DEVMODE lpDevMode, IntPtr hwnd, uint dwflags, IntPtr lParam);
public void GetDisplayInfo() { ddActive.dmSize = (short)Marshal.SizeOf(ddActive); ddInactive.dmSize = (short)Marshal.SizeOf(ddInactive); uint iDeviceCntr = 0; DISPLAY_DEVICE dd = new DISPLAY_DEVICE(); dd.cb = Marshal.SizeOf(dd); while (EnumDisplayDevices(null, iDeviceCntr, ref dd, 0)) { DEVMODE dMode = new DEVMODE(); dMode.dmSize = (short)Marshal.SizeOf(dMode); if (EnumDisplaySettings(dd.DeviceName, ENUM_REGISTRY_SETTINGS, ref dMode)) { if (dMode.dmPelsHeight > 0 && dMode.dmPelsWidth > 0) { if ((dd.StateFlags & DisplayDeviceStateFlags.PrimaryDevice) == DisplayDeviceStateFlags.PrimaryDevice) { ddActive = dMode; szActiveDeviceName = dd.DeviceName; } else { ddInactive = dMode; szInactiveDeviceName = dd.DeviceName; } } } iDeviceCntr++; } }
public static extern bool EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode);