📄 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
Post a Comment