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