Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 internal MonitorStateValue(DisplaySettingsInfo displaySettingsInfo)
     : this(displaySettingsInfo.Width, displaySettingsInfo.Height, displaySettingsInfo.BitsPerPixel, displaySettingsInfo.Frequency)
 {
 }