none
how can i change screen resolution in windows 10 Enterprises using command prompt or powershell or registry keys? RRS feed

  • Question

  • i have been trying powershell scripts , through command prompt and registry keys too but nothing seems to work.i want to change screen resolution to  1280*1024

    i used below script as it was given as a solution to change resolution

    Function Set-ScreenResolution { 

     
    <# 
        .Synopsis 
            Sets the Screen Resolution of the primary monitor 
        .Description 
            Uses Pinvoke and ChangeDisplaySettings Win32API to make the change 
        .Example 
            Set-ScreenResolution -Width 1024 -Height 768    -Freq 60    
        #> 
    param ( 
    [Parameter(Mandatory=$true, 
               Position = 0)] 
    [int] 
    $Width, 
     
    [Parameter(Mandatory=$true, 
               Position = 1)] 
    [int] 
    $Height,

    [Parameter(Mandatory=$true, 
               Position = 2)] 
    [int] 
    $Freq


    ...

    dm.dmPelsWidth = width; 
                    dm.dmPelsHeight = height; 
                    dm.dmDisplayFrequency = freq;
    ...


     

    Set-ScreenResolution -Width 1024 -Height 1280 -Freq 24 
     
    $pinvokeCode = @" 
     
    using System; 
    using System.Runtime.InteropServices; 
     
    namespace Resolution 

     
        [StructLayout(LayoutKind.Sequential)] 
        public struct DEVMODE1 
        { 
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] 
            public string dmDeviceName; 
            public short dmSpecVersion; 
            public short dmDriverVersion; 
            public short dmSize; 
            public short dmDriverExtra; 
            public int dmFields; 
     
            public short dmOrientation; 
            public short dmPaperSize; 
            public short dmPaperLength; 
            public short dmPaperWidth; 
     
            public short dmScale; 
            public short dmCopies; 
            public short dmDefaultSource; 
            public short dmPrintQuality; 
            public short dmColor; 
            public short dmDuplex; 
            public short dmYResolution; 
            public short dmTTOption; 
            public short dmCollate; 
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] 
            public string dmFormName; 
            public short dmLogPixels; 
            public short dmBitsPerPel; 
            public int dmPelsWidth; 
            public int dmPelsHeight; 
     
            public int dmDisplayFlags; 
            public int dmDisplayFrequency; 
     
            public int dmICMMethod; 
            public int dmICMIntent; 
            public int dmMediaType; 
            public int dmDitherType; 
            public int dmReserved1; 
            public int dmReserved2; 
     
            public int dmPanningWidth; 
            public int dmPanningHeight; 
        }; 
     
     
     
        class User_32 
        { 
            [DllImport("user32.dll")] 
            public static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE1 devMode); 
            [DllImport("user32.dll")] 
            public static extern int ChangeDisplaySettings(ref DEVMODE1 devMode, int flags); 
     
            public const int ENUM_CURRENT_SETTINGS = -1; 
            public const int CDS_UPDATEREGISTRY = 0x01; 
            public const int CDS_TEST = 0x02; 
            public const int DISP_CHANGE_SUCCESSFUL = 0; 
            public const int DISP_CHANGE_RESTART = 1; 
            public const int DISP_CHANGE_FAILED = -1; 
        } 
     
     
     
        public class PrmaryScreenResolution 
        { 
            static public string ChangeResolution(int width, int height) 
            { 
     
                DEVMODE1 dm = GetDevMode1(); 
     
                if (0 != User_32.EnumDisplaySettings(null, User_32.ENUM_CURRENT_SETTINGS, ref dm)) 
                { 
     
                    dm.dmPelsWidth = width; 
                    dm.dmPelsHeight = height; 
     
                    int iRet = User_32.ChangeDisplaySettings(ref dm, User_32.CDS_TEST); 
     
                    if (iRet == User_32.DISP_CHANGE_FAILED) 
                    { 
                        return "Unable To Process Your Request. Sorry For This Inconvenience."; 
                    } 
                    else 
                    { 
                        iRet = User_32.ChangeDisplaySettings(ref dm, User_32.CDS_UPDATEREGISTRY); 
                        switch (iRet) 
                        { 
                            case User_32.DISP_CHANGE_SUCCESSFUL: 
                                { 
                                    return "Success"; 
                                } 
                            case User_32.DISP_CHANGE_RESTART: 
                                { 
                                    return "You Need To Reboot For The Change To Happen.\n If You Feel Any Problem After Rebooting Your Machine\nThen Try To Change Resolution In Safe Mode."; 
                                } 
                            default: 
                                { 
                                    return "Failed To Change The Resolution"; 
                                } 
                        } 
     
                    } 
     
     
                } 
                else 
                { 
                    return "Failed To Change The Resolution."; 
                } 
            } 
     
            private static DEVMODE1 GetDevMode1() 
            { 
                DEVMODE1 dm = new DEVMODE1(); 
                dm.dmDeviceName = new String(new char[32]); 
                dm.dmFormName = new String(new char[32]); 
                dm.dmSize = (short)Marshal.SizeOf(dm); 
                return dm; 
            } 
        } 

     
    "@ 
     
    Add-Type $pinvokeCode -ErrorAction SilentlyContinue 
    [Resolution.PrmaryScreenResolution]::ChangeResolution($width,$height,$freq) 
    }

    but it doesnot work and throws "failed to change the resolution"

    Monday, July 17, 2017 7:16 AM

All replies

  • You will have to ask the author of the code for help.  Much of what you have posted seems to be missing and the code is not structured correctly.


    \_(ツ)_/

    Tuesday, July 18, 2017 5:56 AM