Beispiel #1
0
        public static ResolutionChangeResult ChangeTo(int width, int height)
        {
            var devMode = new DevMode {
                DeviceName = new string(new char[32]), FormName = new string(new char[32])
            };

            devMode.Size = (short)Marshal.SizeOf(devMode);

            if (User32.EnumDisplaySettings(null, (int)ResolutionChangeResult.EnumCurrentSettings, ref devMode))
            {
                devMode.PelsWidth  = width;
                devMode.PelsHeight = height;

                var iRet = User32.ChangeDisplaySettings(ref devMode, (int)ResolutionChangeResult.CdsTest);

                if (iRet == (int)ResolutionChangeResult.DisplayChangeFailed)
                {
                    return(ResolutionChangeResult.DisplayChangeFailed);
                }
                iRet = User32.ChangeDisplaySettings(ref devMode, (int)ResolutionChangeResult.CdsUpdateRegistry);

                return((ResolutionChangeResult)iRet);
            }
            return(ResolutionChangeResult.DisplayChangeFailed);
        }
Beispiel #2
0
        public static IList <DevMode> GetAllDevModes()
        {
            var modes = new List <DevMode>();

            var  devName = GetDeviceName(0);
            var  devMode = new DevMode();
            var  modeNum = 0;
            bool result;

            do
            {
                result = User32.EnumDisplaySettings(devName, modeNum, ref devMode);
                if (result)
                {
                    modes.Add(devMode);
                }
                modeNum++;
            } while (result);
            return
                (modes.Where(dev => dev.BitsPerPel == modes.Max(d => d.BitsPerPel)).Distinct(new DevModeComparer()).
                 ToList());
        }
Beispiel #3
0
 public static extern bool EnumDisplaySettings(string deviceName, int modeNum, ref DevMode devMode);
Beispiel #4
0
 public static extern int ChangeDisplaySettings(ref DevMode devMode, int flags);