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 배열을 반복하여 각 모니터에 대해 동일한 값을 얻을 수 있습니다.

관련 정보