public static void SetDisplayMode(DisplayMode displayMode) { DevMode devMode = new DevMode(); devMode.dmSize = (short)Marshal.SizeOf(devMode); devMode.dmBitsPerPel = displayMode.BitsPerPixels; devMode.dmPelsWidth = displayMode.Width; devMode.dmPelsHeight = displayMode.Height; devMode.dmDisplayFrequency = displayMode.Frequency; devMode.dmFields = DM.BitsPerPixel | DM.DisplayFrequency | DM.PelsHeight | DM.PelsWidth; DisplayChange result = User32.ChangeDisplaySettings(ref devMode, ChangeDisplaySettingsFlags.FullScreen); }
/// <summary> /// Changes the display frequency of the built-in display. /// </summary> /// <param name="newFreq"></param> /// <returns></returns> public bool SetIntegratedDisplayFrequency(uint newFreq) { string devName = this.GetIntegratedDisplayName(); if (devName == null) { return(false); } DEVMODE current = default; current.dmSize = (ushort)Marshal.SizeOf <DEVMODE>(); if (!User32.EnumDisplaySettings(devName, User32.ENUM_CURRENT_SETTINGS, ref current)) { return(false); } current.dmDisplayFrequency = newFreq; User32.ChangeDisplaySettings(ref current, 0); return(true); }
public static void ResetDisplayMode() { DisplayChange result = User32.ChangeDisplaySettings(IntPtr.Zero, ChangeDisplaySettingsFlags.None); }