答案1
处理高 DPI 使得这有点具有挑战性,因为大多数 Windows API 函数都会返回分辨率的缩放版本以实现兼容性,除非应用程序声明高 DPI 感知。灵感来自这个 Stack Overflow 上的答案我写了这个 PowerShell 脚本:
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class PInvoke {
[DllImport("user32.dll")] public static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("gdi32.dll")] public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
}
"@
$hdc = [PInvoke]::GetDC([IntPtr]::Zero)
[PInvoke]::GetDeviceCaps($hdc, 118) # width
[PInvoke]::GetDeviceCaps($hdc, 117) # height
它输出两行:首先是水平分辨率,然后是垂直分辨率。
要运行它,请将其保存到文件(例如screenres.ps1
)并使用 PowerShell 启动它:
powershell -ExecutionPolicy Bypass .\screenres.ps1
答案2
我遇到了类似的问题。
试试这个:
wmic PATH Win32_VideoController GET CurrentVerticalResolution,CurrentHorizontalResolution