명령 줄을 통한 Windows 8.1의 DPI 스케일링


14

키보드 단축키를 감지하면 실행할 작은 매크로를 만들어 컴퓨터에서 DPI 스케일을 빠르고 쉽게 변경할 수있는 키보드 단축키를 만들고 싶습니다.

Windows 8.1에서 데스크톱 디스플레이 DPI 스케일은 제어판 (아래 그림)을 통해 설정하여 즉시 적용됩니다. 또는 레지스트리에서 스케일을 수동으로 설정할 수 있지만, 그렇게하려면 사용자가 시스템에 로그인 및 로그 아웃하거나 시스템을 다시 시작해야합니다. .

명령 줄을 통해 또는 프로그래밍 방식으로 DPI 스케일을 설정하려면 어떻게해야합니까?

http://puu.sh/93YLV.jpg


레지스트리를 변경하고 탐색기 프로세스를 종료 한 다음 다시 시작해 보셨습니까? 그것이 모든 GUI 방법이 이론적으로 할 것이기 때문입니다.
Ramhound

@Ramhound 운이 없다. GUI 인터페이스는 설정을 적용하기 위해 데스크탑을 새로 고칠 수있는 작업을 수행하고 있지만 확실하지 않으며 아무것도 찾을 수 없었습니다.
FThompson 2016 년

변경 사항이 즉시 적용됩니까? "이 변경 사항을 적용하려면 컴퓨터에서 로그 아웃해야합니다"라는 대화 상자가 나타납니다.
Vinayak

@Vinayak, 위 대화 상자에서 적용하면 변경 사항이 즉시 적용됩니다. 나는 즉시 응용 프로그램이 표준 Windows 8보다 Windows 8.1에 새로 도입되었다는 것을 기억합니다. 따라서 기계와 광산의 차이점을 연구하는 데 관심이 있다면 시작하는 곳이 될 수 있습니다.
FThompson

@Vulcan 실제로 Windows 8.1을 사용하고 있습니다. 그러나 Let me choose one scaling level...위의 슬라이더가 노트북에서 회색으로 표시되어 확인란을 클릭 한 후 변경하려고했습니다 .
Vinayak

답변:


9

모니터 독립 스케일링에 대한 올바른 레지스트리 키 HKCU:\Control Panel\Desktop는 값 LogPixels입니다. 모든 DPI 관련 레지스트리 설정에 대한 자세한 내용은 여기를 참조하십시오. http://technet.microsoft.com/en-us/library/dn528846.aspx#system 각 디스플레이에 대해 다른 스케일링을 활성화 한 경우에 대한 정보도 있습니다. .

현재 스케일링에 따라 모든 디스플레이의 DPI 스케일링을 변경하고 사용자 로그 오프를 수행하는 작은 PowerShell 스크립트를 작성 했으므로 장치를 다른 모니터에 넣을 때 스크립트를 실행하면됩니다.

cd 'HKCU:\Control Panel\Desktop'
$val = Get-ItemProperty -Path . -Name "LogPixels"
if($val.LogPixels -ne 96)
{
    Write-Host 'Change to 100% / 96 dpi'
    Set-ItemProperty -Path . -Name LogPixels -Value 96
} else {
    Write-Host 'Change to 150% / 144 dpi'
    Set-ItemProperty -Path . -Name LogPixels -Value 144
}

logoff;exit

TechNet 기사의 정보를 사용하여 필요에 따라 수정할 수 있다고 생각합니다.


3
더 빨리 응답하지 않아서 죄송합니다. 좋은 해결책! 그러나 불행히도이 LogPixels값을 사용하면 "모든 디스플레이에 대해 하나의 스케일링 수준을 선택하십시오"확인란이 선택된 경우에만 적용됩니다. 레지스트리 값을 엉망으로 만들었을 때 관찰 한 것이지만 연결된 Technet 기사에서 확인했습니다. 또한 솔루션에는 사용자 로그 아웃이 필요하다는 경고가 있습니다. 사용자가 로그 아웃했다가 다시 로그인하지 않으면 DPI가 업데이트되지 않습니다. 이 두 가지 단점 사이에서 귀하의 솔루션은 나에게 효과적이지 않지만 큰 대답을 위해 모두 +1입니다.
FThompson

Windows 10에서는 작동하지 않습니다 :(
kokbira

3
@kokbira Windows 10에서 작동하려면 레지스트리 키 HKCU:\Control Panel\Desktop\Win8DpiScaling를 로 설정해야 합니다 1. 그렇지 않으면 기본 배율을 사용하고의 값을 무시합니다 LogPixels.
FlyingFoX

1
DPI 스케일이 모니터마다 다른 경우 HKCU:\Control Panel\Desktop모양 대신HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
Shayan

1
그리고 여기HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GraphicsDrivers\ScaleFactors
Shayan

2

화면 해상도를 변경하는 데 도움이되는 PowerShell 스크립트가 있습니다. Windows 8.1에서 변경 사항이 즉시 발생하는지는 알 수 없지만 운이 좋으면이 스크립트는 제어판 애플릿에서 사용하는 것과 동일한 API를 사용할 수 있습니다.

전체 Set-ScreenResolution.ps1스크립트는 스크립트 리포지토리 에서 사용할 수 있지만 여기서 재현하기에는 너무 깁니다.

저자의 설명은 기사 :
Hey, Scripting Guy! Windows PowerShell을 통해 데스크톱 모니터 해상도를 변경하려면 어떻게해야합니까? .

이를 사용하는 방법에 대한 일부 정보
는 Powershell 을 사용하여 화면 해상도 변경 기사를 참조하십시오 .


이러한 리소스는 DPI가 아닌 화면 해상도를 변경하는 데보다 적합합니다. 제공 한 링크를 보았지만 너비와 높이를 설정하는 옵션 만 표시되며 DPI에 대한 언급은 없습니다. 나는 당신의 대답을 오해하고 있습니까?
FThompson

해상도를 변경하면 DPI가 변경되고 그 반대도 마찬가지입니다. 다른 DPI 설정에서 화면 해상도를 찾은 다음 위 스크립트를 사용하여 이러한 해상도로 변경할 수 있습니다.
harrymc

1
해상도를 변경하면 DPI가 변경되지만 Win8에서 제공하는 DPI 스케일링과는 다릅니다 (다른 운영 체제에서는 다를 수 있음). DPI 스케일링 설정에 상관없이 데스크탑에 대한 예가 있습니다. 아이콘의 크기와 모양은 항상 동일하지만 해상도가 변경되면 바탕 화면과 아이콘의 크기가 그에 따라 변경됩니다.
FThompson

Windows 8.1에 도입 된 새로운 DPI 인식 기술 때문입니다. API에 대한 정보를 찾을 수 없었습니다. 현재 레지스트리 설정 만 사용할 수 있지만 원하는 것은 아닙니다.
harrymc

Explorer는 DPI를 인식하므로 바탕 화면 아이콘의 크기는 유지되지만 다른 프로그램은 거의 없습니다. 대부분의 제품에서 해상도 변경은 DPI 변경만큼 좋습니다.
harrymc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.