DPI Scaling no Windows 8.1 via linha de comando

12

Gostaria de criar um atalho de teclado para alterar rápida e facilmente a escala DPI na minha máquina, por meio da criação de uma macro pequena para ser executada após a detecção do atalho de teclado.

No Windows 8.1, a escala DPI de exibição da área de trabalho pode ser definida por meio do painel de controle (foto abaixo), com efeito imediato. Como alternativa, a escala pode ser definida manualmente no registro, mas isso exige que o usuário entre e saia ou reinicie a máquina para entrar em vigor (e só funciona para imitar a opção "um nível de escala para todos os meus monitores") .

Como posso definir a escala de DPI por meio da linha de comando ou, de outra forma, programaticamente?

    
por Vulcan 28.05.2014 / 00:18

2 respostas

7

A chave de registro correta para o dimensionamento independente de monitor é HKCU:\Control Panel\Desktop com o valor LogPixels . Mais informações sobre todas as configurações de registro relacionadas ao DPI podem ser encontradas aqui: link Há também informações para o caso quando você ativou diferentes escalas para cada exibição.

Eu escrevi um minúsculo script do PowerShell que altera o escalonamento de DPI para todos os monitores, dependendo do escalonamento atual e da execução do logoff do usuário, por isso só preciso executar o script quando coloco meu dispositivo em um monitor diferente.

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

Acho que você pode modificá-lo para suas necessidades com as informações do artigo do TechNet.

    
por 31.12.2014 / 13:03
2

Há um script do PowerShell para alterar a resolução da tela, o que pode ajudar. Não tenho idéia se a alteração é imediata no Windows 8.1, mas com um pouco de sorte esse script pode usar a mesma API usada pelo miniaplicativo do Painel de Controle.

O script completo Set-ScreenResolution.ps1 está disponível no Repositório de scripts , mas é muito longo para reproduzir aqui.

A descrição do autor pode ser encontrada no artigo: Ei, Equipe de Scripts! Como posso alterar a resolução do meu monitor de desktop via Windows PowerShell? .

Algumas informações sobre como usá-lo podem ser encontradas no artigo: Alterando a resolução da tela com o Powershell .

    
por 26.08.2014 / 11:09