예제 #1
0
        private bool GenerateNewMode(int id)
        {
            var MyInfoEnumProc = new DISPLAY_DEVICE();

            MyInfoEnumProc.cb = Marshal.SizeOf(MyInfoEnumProc);//構造体のサイズを設定


            if (!DisplayDevice.EnumDisplayDevices(IntPtr.Zero, id, ref MyInfoEnumProc, 0))
            {
                return(false);
            }

            // initialize the DEVMODE structure
            var dm = new DEVMODE();

            dm.dmDeviceName = new string(new char[32]);
            dm.dmFormName   = new string(new char[32]);
            dm.dmSize       = (short)Marshal.SizeOf(dm);



            if (!DisplayDevice.EnumDisplaySettings
                    (MyInfoEnumProc.DeviceName, DisplayDevice.ENUM_CURRENT_SETTINGS, ref dm))
            {
                return(false);
            }

            this.Mode = dm;
            this.Name = MyInfoEnumProc.DeviceName;
            return(true);
        }