Powershell 获取所有显示器的显示器 DPI 缩放

Powershell 获取所有显示器的显示器 DPI 缩放

使用引用的 DPI 类脚本这里我可以为我的主显示器获取 DPI 缩放,如何从任何可能具有单独缩放因子的其他显示器获取输出?

答案1

我正在使用 powershell 7 并使用以下代码:

Add-Type -AssemblyName System.Windows.Forms 
$rh=[int]((Get-CimInstance -ClassName CIM_Display).ScreenHeight | Format-Table -HideTableHeaders | Out-String)
$vh=[int][System.Windows.Forms.SystemInformation]::VirtualScreen.Height
$screen_scale_factor=$rh/$vh

更好的是

Add-Type -AssemblyName System.Windows.Forms     
# $rh=[int]((Get-CimInstance -ClassName CIM_Display).ScreenHeight | Format-Table -HideTableHeaders | Out-String)
$rh=[int](Get-CimInstance -ClassName Win32_VideoController)[0].CurrentVerticalResolution
$vh=[int][System.Windows.Forms.SystemInformation]::VirtualScreen.Height
$screen_scale_factor=$rh/$vh

您可以迭代 VideoController 数组并为每个监视器获取相同的值。

相关内容