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);