示例#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;
        }
 public static extern bool EnumDisplayDevices(
     IntPtr lpDevice, int iDevNum,
     ref DISPLAY_DEVICE lpDisplayDevice, int dwFlags);
 public static extern bool EnumDisplayDevices(
     IntPtr lpDevice, int iDevNum,
     ref DISPLAY_DEVICE lpDisplayDevice, int dwFlags);