set độ phân giải windows

 

📄 Bước 1: Tạo file set-resolution.ps1

Mở Notepad, dán đoạn code bên dưới vào và lưu với tên:

set-resolution.ps1

Nội dung file:

Add-Type @"
using System;
using System.Runtime.InteropServices;

public class Display {
[StructLayout(LayoutKind.Sequential)]
public struct DEVMODE {
private const int CCHDEVICENAME = 32;
private const int CCHFORMNAME = 32;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = CCHDEVICENAME)]
public string dmDeviceName;
public short dmSpecVersion;
public short dmDriverVersion;
public short dmSize;
public short dmDriverExtra;
public int dmFields;

public int dmPositionX;
public int dmPositionY;
public int dmDisplayOrientation;
public int dmDisplayFixedOutput;

public short dmColor;
public short dmDuplex;
public short dmYResolution;
public short dmTTOption;
public short dmCollate;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = CCHFORMNAME)]
public string dmFormName;

public short dmLogPixels;
public int dmBitsPerPel;
public int dmPelsWidth;
public int dmPelsHeight;

public int dmDisplayFlags;
public int dmDisplayFrequency;
}

[DllImport("user32.dll")]
public static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode);

[DllImport("user32.dll")]
public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags);

public const int ENUM_CURRENT_SETTINGS = -1;
public const int CDS_UPDATEREGISTRY = 0x01;
public const int DISP_CHANGE_SUCCESSFUL = 0;
}
"@

$devmode = New-Object Display+DEVMODE
$devmode.dmSize = [System.Runtime.InteropServices.Marshal]::SizeOf($devmode)

[Display]::EnumDisplaySettings($null, [Display]::ENUM_CURRENT_SETTINGS, [ref]$devmode)

$devmode.dmPelsWidth = 1920
$devmode.dmPelsHeight = 1080
$devmode.dmFields = 0x80000 -bor 0x100000

$result = [Display]::ChangeDisplaySettings([ref]$devmode, [Display]::CDS_UPDATEREGISTRY)

if ($result -eq [Display]::DISP_CHANGE_SUCCESSFUL) {
Write-Host "Đã đổi độ phân giải thành công 1920x1080"
} else {
Write-Host "Không đổi được độ phân giải. Mã lỗi: $result"
}

▶ Bước 2: Chạy file

Mở PowerShell với quyền Administrator, sau đó chạy:

Set-ExecutionPolicy RemoteSigned -Scope Process
.\set-resolution.ps1

⚠ Lưu ý

  • Màn hình phải hỗ trợ 1920x1080.

  • Nếu dùng nhiều màn hình, script sẽ đổi màn hình chính.

  • Có thể cần restart nếu không áp dụng ngay.

Comments