// helper for creating an initialized DEVMODE structure public static DEVMODE CreateDevmode() { DEVMODE dm = new DEVMODE(); dm.dmDeviceName = new String(new char[32]); dm.dmFormName = new String(new char[32]); dm.dmSize = (short)Marshal.SizeOf(dm); return dm; }
public static extern int EnumDisplaySettings(string lpszDeviceName, int iModeNum, ref DEVMODE lpDevMode);
public static extern int ChangeDisplaySettings(ref DEVMODE lpDevMode, int dwFlags);
private int GetSettings(ref DEVMODE dm, int iModeNum) { // helper to wrap EnumDisplaySettings Win32 API return EnumDisplaySettings(null, iModeNum, ref dm); }
private int GetSettings(ref DEVMODE dm) { // helper to obtain current settings return GetSettings(ref dm, ENUM_CURRENT_SETTINGS); }
private void ChangeSettings(DEVMODE dm) { int iRet = ChangeDisplaySettings(ref dm, 0); //TODO: actual error handling (lol) if (iRet != DISP_CHANGE_SUCCESSFUL) { Console.WriteLine("error"); } }