public static bool ChangeResolutionEx(ResolutionModeWrapper resolutionMode, string lpszDeviceName) { Devmode mode = new Devmode(); if (GetCurrentResolutionSettings(out mode, lpszDeviceName)) { mode.dmPelsWidth = resolutionMode.DmPelsWidth; mode.dmPelsHeight = resolutionMode.DmPelsHeight; mode.dmBitsPerPel = resolutionMode.DmBitsPerPel; mode.dmDisplayFrequency = resolutionMode.DmDisplayFrequency; mode.dmDisplayFixedOutput = resolutionMode.DmDisplayFixedOutput; DispChange returnValue = (DispChange)ChangeDisplaySettingsEx(lpszDeviceName, ref mode, IntPtr.Zero, (ChangeDisplaySettingsFlags.CdsUpdateregistry | ChangeDisplaySettingsFlags.CdsNoreset), IntPtr.Zero); ChangeDisplaySettingsEx(null, IntPtr.Zero, (IntPtr)null, ChangeDisplaySettingsFlags.CdsNone, (IntPtr)null); if (DispChange.DispChangeSuccessful == returnValue) { return(true); } else { MessageBox.Show("Changing the resolution failed: " + Enum.GetName(typeof(DispChange), returnValue)); } } return(false); }
/// <summary> /// <para>Updates the screen's settings</para> /// </summary> /// <param name="screen"></param> /// <returns></returns> public static bool UpdateScreen(ScreenEx screen) { ScreenSettingsDevMode devMode = screen.ToDEVMODE(); DispChange result = ChangeDisplaySettingsEx(screen.Name, ref devMode, CDS.RESET | CDS.UPDATEREGISTRY); if (result >= 0) { return(true); } else { return(false); } }
public static bool ChangeResolution(ResolutionModeWrapper resolutionMode) { Devmode mode = new Devmode(); if (GetCurrentResolutionSettings(out mode, null)) { mode.dmPelsWidth = resolutionMode.DmPelsWidth; mode.dmPelsHeight = resolutionMode.DmPelsHeight; mode.dmBitsPerPel = resolutionMode.DmBitsPerPel; mode.dmDisplayFrequency = resolutionMode.DmDisplayFrequency; mode.dmDisplayFixedOutput = resolutionMode.DmDisplayFixedOutput; DispChange returnValue = (DispChange)ChangeDisplaySettings(ref mode, 0); if (DispChange.DispChangeSuccessful == returnValue) { return(true); } else { MessageBox.Show("Changing the resolution failed: " + Enum.GetName(typeof(DispChange), returnValue)); } } return(false); }