win10 修改分辨率powershell脚本

将下面脚本保存为 1.ps1

然后右这个文件,菜单 使用 PowerShell 运行

Function Set-Resolution
        [Parameter(Mandatory = $true, Position = 0)] [int] $Width, 
        [Parameter(Mandatory = $true, Position = 1)] [int] $Height
    $pinvokeCode = @" 
    using System; 
    using System.Runtime.InteropServices; 
    namespace Resolution 
        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 
            public static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE1 devMode); 
            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."; 
                        iRet = User_32.ChangeDisplaySettings(ref dm, User_32.CDS_UPDATEREGISTRY); 
                        switch (iRet) 
                            //case User_32.DISP_CHANGE_SUCCESSFUL: 
                                //return "Ok"; 
                            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."; 
                                return "Failed To Change The Resolution"; 
                    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 
Set-Resolution 1440 900


Set-Resolution 1440 900 即可,示例是1440X900,你可以改成其它数值


电子邮件地址不会被公开。必填项已用 * 标注