2012-04-28 12 views
7

Estoy usando una computadora portátil en la oficina (Windows 7) con una estación y una pantalla doble y en mi casa sin estación.
El punto es que tengo que cambiar el tamaño del texto cada vez que cambio de una estación a una portátil independiente porque el tamaño del texto es demasiado grande en mi pantalla doble pero demasiado pequeño en la pantalla de mi computadora portátil.¿Cambiar "Tamaño de fuente de Windows (DPI)" en Powershell?

para proceder:
que haga clic derecho en el escritorio de la pantalla, seleccione resolución de cambio de entonces "obtener el texto y otros elementos mayores o menores" para seleccionar 100%, 125%, etc ...
tengo que reiniciar mi sesión para obtener la configuración aplicada. (nota: estoy usando un sistema francés, los textos no son exactamente los mismos en la versión de nosotros, supongo).

No es muy conveniente, así que me gustaría automatizar esto, quizás con un script de powershell.
Lo ideal es que el script pueda detectar si estoy usando una computadora portátil sola o una estación con sus dos pantallas). Además, sin reiniciar la sesión (dudo que este último punto sea posible).

¿Alguien tiene ideas para ayudarme a comenzar? Si esto es posible.

+1

Incluso con powershell tendrá que reiniciar la sesión. Sospecho que es solo una configuración de registro; y si es así, podría ser anulado regularmente en su entorno. (En este caso, suena como un perfil remoto que simplemente lo hace.) –

Respuesta

1

Disculpa, he leído mal la pregunta. Pensé que querías controlar las ventanas de PowerShell.

Como ya se ha mencionado podría configurar las LogPixels configuración en el registro, para ver lo que es el ajuste actual, intente esto:

Get-Item -Path Registry::'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI' | Select-Object -ExpandProperty Property 

Si la clave LogPixels está allí se mostrará, puede crear si no existe:

Set-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI\LogPixels' 

NB: hay que ejecutar esto con privilegios que le permiten manipular el registro.

Hay una buena introduction para esto en Technet.

+0

Esa es solo la aplicación host de PowerShell. No tiene nada que ver con la configuración de Windows. – Joey

3

Aparentemente se puede establecer la propiedad de LogPixels

HKLM:/Software/Microsoft/Windows NT/CurrentVersion/FontDPI 

que se reitera en muchos lugares alrededor de la red. Sin embargo, tuve la impresión de que el dpi era una configuración de usuario que no tiene sentido tener bajo HKLM.

6

Como se supone en las otras respuestas, la configuración en HKLM no es el lugar correcto, ya que la escala de dpi es una configuración definida por el usuario. La clave de registro correcta es HKCU:\Control Panel\Desktop con el valor LogPixels.

Más información acerca de todos los ajustes del registro relacionadas con el DPI se puede encontrar aquí: http://technet.microsoft.com/en-us/library/dn528846.aspx#system

escribí un pequeño script de PowerShell que cambia la escala DPI dependiendo de la escala actual y lleva a cabo el cierre de sesión del usuario y por eso sólo tiene que ejecutar el script cuando coloque mi dispositivo en un 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 
Cuestiones relacionadas