Пример #1
0
        private static void SetupDevice(string device, int width, int height, int x = 0, int y = 0)
        {
            ChangeDisplaySettingsFlags flags = ChangeDisplaySettingsFlags.CDS_NONE;

            if (x == 0 && y == 0)
            {
                flags = ChangeDisplaySettingsFlags.CDS_SET_PRIMARY;
            }

            DEVMODE screenMode = new DEVMODE();

            screenMode.dmSize        = Convert.ToInt16(Marshal.SizeOf(screenMode));
            screenMode.dmDriverExtra = 0;
            screenMode.dmFields      = DM.Position | DM.PelsHeight | DM.PelsWidth;
            screenMode.dmPelsWidth   = width;
            screenMode.dmPelsHeight  = height;

            POINTL deleteion;

            deleteion.x           = x;
            deleteion.y           = y;
            screenMode.dmPosition = deleteion;

            ChangeDisplaySettings(device, screenMode, flags);
        }
Пример #2
0
 public static extern ChangeDisplaySettingsExResults ChangeDisplaySettingsEx(
     string deviceName,
     IntPtr devModePointer,
     IntPtr handler,
     ChangeDisplaySettingsFlags flags,
     IntPtr param
     );
Пример #3
0
 public static extern ChangeDisplaySettingsExResult ChangeDisplaySettingsEx(
     string deviceName,
     ref DeviceMode devMode,
     IntPtr handler,
     ChangeDisplaySettingsFlags flags,
     IntPtr param
     );
Пример #4
0
 private static void ChangeDisplaySettings(string device, DEVMODE mode, ChangeDisplaySettingsFlags flags = ChangeDisplaySettingsFlags.CDS_NONE)
 {
     ChangeDisplaySettingsEx(device,
                             ref mode,
                             IntPtr.Zero,
                             flags | ChangeDisplaySettingsFlags.CDS_UPDATEREGISTRY | ChangeDisplaySettingsFlags.CDS_NORESET,
                             IntPtr.Zero);
 }
Пример #5
0
        //todo: CDS_UPDATEREGISTRY

        // Change the settings to the values of the DEVMODE passed
        public string ChangeSettings(DISPLAY_DEVICE a_dev, DevMode devmode, bool bSetPrimary)
        {
            string errorMessage = "";
            ChangeDisplaySettingsFlags flags = new ChangeDisplaySettingsFlags();

            flags = ChangeDisplaySettingsFlags.CDS_UPDATEREGISTRY | ChangeDisplaySettingsFlags.CDS_GLOBAL;

            ReturnCodes iRet = NativeMethods.ChangeDisplaySettingsEx(a_dev.DeviceName, ref devmode, IntPtr.Zero, flags, IntPtr.Zero);

            //same again, but with PRIMARY
            if (bSetPrimary && iRet == ReturnCodes.DISP_CHANGE_SUCCESSFUL)
            {
                SetAsPrimaryMonitor(a_dev);
            }//if primary

            if (iRet == ReturnCodes.DISP_CHANGE_SUCCESSFUL)
            {
                AdjustMonitorPosition(a_dev);
            }

            switch (iRet)
            {
            case ReturnCodes.DISP_CHANGE_SUCCESSFUL:
                break;

            case ReturnCodes.DISP_CHANGE_RESTART:
                errorMessage = "Please restart your system";
                break;

            case ReturnCodes.DISP_CHANGE_FAILED:
                errorMessage = "ChangeDisplaySettigns API failed";
                break;

            case ReturnCodes.DISP_CHANGE_BADDUALVIEW:
                errorMessage = "The settings change was unsuccessful because system is DualView capable.";
                break;

            case ReturnCodes.DISP_CHANGE_BADFLAGS:
                errorMessage = "An invalid set of flags was passed in.";
                break;

            case ReturnCodes.DISP_CHANGE_BADPARAM:
                errorMessage = "An invalid parameter was passed in. This can include an invalid flag or combination of flags.";
                break;

            case ReturnCodes.DISP_CHANGE_NOTUPDATED:
                errorMessage = "Unable to write settings to the registry.";
                break;

            default:
                errorMessage = "Unknown return value from ChangeDisplaySettings API";
                break;
            }
            return(errorMessage);
        }
Пример #6
0
 [DllImport("user32.dll", CharSet = CharSet.Ansi)] //CallingConvention = CallingConvention.Cdecl
 public static extern ReturnCodes ChangeDisplaySettingsEx(string lpszDeviceName, ref DevMode lpDevMode, IntPtr hwnd, ChangeDisplaySettingsFlags dwFlags, IntPtr lParam);
Пример #7
0
 public static extern ChangeDisplaySettingsExResults ChangeDisplaySettingsEx(
     string lpszDeviceName,
     IntPtr lpDevMode,
     IntPtr hwnd,
     ChangeDisplaySettingsFlags dwflags,
     IntPtr lParam);
Пример #8
0
 private static extern DispChange ChangeDisplaySettingsEx(
     string lpszDeviceName,
     ref Devmode lpDevMode,
     IntPtr hwnd,
     ChangeDisplaySettingsFlags dwflags,
     IntPtr lParam);
Пример #9
0
 public static extern int ChangeDisplaySettingsEx(string lpszDeviceName, ref DEVMODE lpDevMode, IntPtr hwnd, ChangeDisplaySettingsFlags dwflags, IntPtr lParam);
Пример #10
0
 public static extern DISP_CHANGE ChangeDisplaySettingsEx(string lpszDeviceName, ref Devmode lpDevMode,
     IntPtr hwnd, ChangeDisplaySettingsFlags dwflags, IntPtr lParam);
Пример #11
0
 private static extern DispChange ChangeDisplaySettingsEx(
     string lpszDeviceName,
     ref Devmode lpDevMode,
     IntPtr hwnd,
     ChangeDisplaySettingsFlags dwflags,
     IntPtr lParam);
Пример #12
0
 public static extern DisplayChange ChangeDisplaySettingsEx([In, MarshalAs(UnmanagedType.LPTStr)] string lpszDeviceName, [In] IntPtr lpDevMode, IntPtr hWnd,
                                                            [In] ChangeDisplaySettingsFlags dwflags, [In] IntPtr lParam);
Пример #13
0
 public static extern DisplayChange ChangeDisplaySettings([In] IntPtr devMode, [In] ChangeDisplaySettingsFlags flags);
Пример #14
0
 static extern DISP_CHANGE ChangeDisplaySettingsExNoop(string lpszDeviceName, IntPtr noop, IntPtr hwnd, ChangeDisplaySettingsFlags dwflags, IntPtr lParam);
Пример #15
0
 public static extern int ChangeDisplaySettingsEx(string lpszDeviceName, ref DEVMODE lpDevMode, IntPtr hwnd, ChangeDisplaySettingsFlags dwflags, IntPtr lParam);
Пример #16
0
 // A signature for ChangeDisplaySettingsEx with a DEVMODE struct as the second parameter won't allow you to pass in IntPtr.Zero, so create an overload
 public static extern DISP_CHANGE ChangeDisplaySettingsEx(string lpszDeviceName, IntPtr lpDevMode, IntPtr hwnd, ChangeDisplaySettingsFlags dwflags, IntPtr lParam);
Пример #17
0
 internal static extern DisplayChangeResult ChangeDisplaySettings(ref DEVMODE lpDevMode, ChangeDisplaySettingsFlags dwFlags);