/// <summary/> public override bool SetValue(MonitorStateValue value, object action) { int monitorId = (int)monitorIdentifier; Monitor[] monitors = Monitor.GetAllEnabled(); if (monitorId >= monitors.Length) { return(false); } //If we don't check this, it will throw if (value.Width <= 0 || value.Height <= 0 || value.BitsPerPixel <= 0 || value.Frequency <= 0) { return(false); } //Query to ensure the settings are supported DisplaySettingsInfo displaySettingsInfo = monitors[monitorId].DisplaySettings.Query(value.Width, value.Height, value.BitsPerPixel, value.Frequency); if (displaySettingsInfo == null) { return(false); } //Need to impersonate user monitors[monitorId].DisplaySettings.Current = displaySettingsInfo; return(true); }
internal MonitorStateValue(DisplaySettingsInfo displaySettingsInfo) : this(displaySettingsInfo.Width, displaySettingsInfo.Height, displaySettingsInfo.BitsPerPixel, displaySettingsInfo.Frequency) { }