2012-04-28 5 views
7

Używam laptopa w biurze (Windows 7) ze stacją i podwójnym ekranem oraz w domu bez stacji.
Chodzi o to, że muszę zmieniać rozmiar tekstu za każdym razem, gdy przełączam się ze stacji na zwykły laptop, ponieważ rozmiar tekstu jest zbyt duży na moim podwójnym ekranie, ale jest zbyt mały na moim ekranie laptopa.Zmienić "Rozmiar czcionki (DPI) w Windows" w Powershell?

postępować:
ja prawym przyciskiem myszy na ekranie biurka, wybierz rozdzielczość zmian następnie „get tekst i inne elementy mniejsze lub większe”, aby wybrać 100%, 125% etc ...
muszę ponownie uruchomić sesję aby uzyskać zastosowane ustawienia. (uwaga: używam francuskiego systemu, teksty nie są dokładnie takie same na nas wersji, jak przypuszczam).

Nie jest to bardzo wygodne, więc chciałbym to zautomatyzować, prawdopodobnie za pomocą skryptu powłoki.
Idealnie skrypt może wykryć, czy korzystam z samego laptopa, czy z dwóch ekranów). Dodatkowo, bez restartowania sesji (wątpię, aby ten ostatni punkt był możliwy).

Czy ktoś ma pomysły, aby zacząć mnie? Jeśli to możliwe.

+1

Nawet z powershell będziesz musiał zrestartować sesję. Podejrzewam, że to tylko ustawienie rejestru; a jeśli tak, to może być przesłonięte regularnie w twoim środowisku. (W tym przypadku brzmi to jak zdalny profil, który właśnie to robi). –

Odpowiedz

1

Przepraszamy, źle odczytałem pytanie. Myślałem, że chcesz kontrolować okna PowerShell.

Jak już wspomniano można ustawić LogPixels ustawienia w rejestrze, aby zobaczyć, co bieżące ustawienie jest, spróbuj tego:

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

Jeśli klucz LogPixels jest tam pokaże, można go utworzyć, jeśli nie istnieje:

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

NB: trzeba uruchomić to z przywilejów, które pozwalają manipulować rejestru.

Jest tam dobry introduction w serwisie Technet.

+0

To tylko aplikacja hosta PowerShell. Nie ma to nic wspólnego z ustawieniami systemu Windows. – Joey

3

Podobno można ustawić właściwość

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

który został powtórzony w wielu miejscach na całym netto LogPixels. Odniosłem jednak wrażenie, że dpi to ustawienie użytkownika, które nie ma sensu w ramach HKLM.

6

Podobnie jak w innych odpowiedziach ustawienie w HKLM nie jest właściwym miejscem, ponieważ skalowanie dpi jest ustawieniem zdefiniowanym przez użytkownika. Poprawny klucz rejestru to HKCU:\Control Panel\Desktop o wartości LogPixels.

więcej informacji na temat wszystkich DPI związanych ustawień rejestru można znaleźć tutaj: http://technet.microsoft.com/en-us/library/dn528846.aspx#system

napisałem mały skrypt PowerShell, który zmienia skalowania DPI w zależności od aktualnej skalowania i wykonuje wylogowanie użytkownika, więc po prostu trzeba wykonać skrypt po umieszczeniu mojego urządzenia na innym monitorze.

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