public static DisplayData GetCurrentDisplaySettings() { Win32.DEVMODE dmCurrent = new Win32.DEVMODE(); int ret = Win32.EnumDisplaySettings(null, Win32.ENUM_CURRENT_SETTINGS, ref dmCurrent); return(new DisplayData(dmCurrent, true)); }
static bool IsEqual(Win32.DEVMODE x, Win32.DEVMODE y) { if (x.dmPelsHeight == y.dmPelsHeight && x.dmPelsWidth == y.dmPelsWidth && x.dmBitsPerPel == y.dmBitsPerPel && x.dmDisplayFrequency == y.dmDisplayFrequency && x.dmOrientation == y.dmOrientation && x.dmDeviceName == y.dmDeviceName) { return(true); } return(false); ; }
public static int ChangeSettings(DisplayData data, out string err) { err = ""; Win32.DEVMODE devmode = data.Data; Win32.ChangeDisplayFlags flags = Win32.ChangeDisplayFlags.CDS_UPDATEREGISTRY; Win32.ReturnValues iRet = (Win32.ReturnValues)Win32.ChangeDisplaySettings(ref devmode, (int)flags); switch (iRet) { case Win32.ReturnValues.DISP_CHANGE_SUCCESSFUL: err = Win32.ReturnValueText.DISP_CHANGE_SUCCESSFUL; break; case Win32.ReturnValues.DISP_CHANGE_RESTART: err = Win32.ReturnValueText.DISP_CHANGE_RESTART; break; case Win32.ReturnValues.DISP_CHANGE_FAILED: err = Win32.ReturnValueText.DISP_CHANGE_FAILED; break; case Win32.ReturnValues.DISP_CHANGE_BADDUALVIEW: err = Win32.ReturnValueText.DISP_CHANGE_BADDUALVIEW; break; case Win32.ReturnValues.DISP_CHANGE_BADFLAGS: err = Win32.ReturnValueText.DISP_CHANGE_BADFLAGS; break; case Win32.ReturnValues.DISP_CHANGE_BADPARAM: err = Win32.ReturnValueText.DISP_CHANGE_BADPARAM; break; case Win32.ReturnValues.DISP_CHANGE_NOTUPDATED: err = Win32.ReturnValueText.DISP_CHANGE_NOTUPDATED; break; default: err = Win32.ReturnValueText.DISP_CHANGE_OTHER; break; } return((int)iRet); }
public static IList <DisplayData> GetDisplaySettings() { Win32.DEVMODE dmCurrent = new Win32.DEVMODE(); int ret = Win32.EnumDisplaySettings(null, Win32.ENUM_CURRENT_SETTINGS, ref dmCurrent); List <DisplayData> list = new List <DisplayData>(); Win32.DEVMODE dm = new Win32.DEVMODE(); int i = 0; bool isCurrent; while (Win32.EnumDisplaySettings(null, i, ref dm) != 0) { isCurrent = IsEqual(dm, dmCurrent); list.Add(new DisplayData(dm, isCurrent)); i++; } return(list); }
internal DisplayData(Win32.DEVMODE data, bool isCurrent) { _data = data; _isCurrent = isCurrent; }