Bildwiederholungsrate in Win11 mittels Script einstellen?
Hallo zusammen.
Um ein kleines bisschen mehr Energie einzusparen und weil der Monitor doch recht viel Wärme abstrahlt, möchte ich mir ein kleines Helferlein schreiben, welches automatisch die Bildwiederholungsrate auf 60Hz drosselt, wenn ich in keinem Spiel unterwegs bin.
Hierzu suche ich nun die Möglichkeit, wie ich die Bildwiederholungsrate mittels Konsolenbefehl oder sonst einer API Schnittstelle auf Windows 11 einstellen kann.
Also quasi diese manuelle Einstellungsmöglichkeit
mittels Script zuweisen.
Hat zufällig jemand den passenden Befehl zur Hand oder weiß wo ich suchen könnte?
Vielen Dank für eure Zeit.
2 Antworten
Das ändern der Displyfrequenzen mit nativen Methoden ist "Pain in the Ass" .
(auch in Powershell machbar, aber weit jenseits von Anfänger)
aus dem Stegreif hätte ich nur als bekannte vertrauenswürdiges Kommandozeilenprogramm Nircmd.exe zu empfehlen.
für deinen Zweck wäre der Aufruf in CMD oder Batch :
rem nircmd.exe setdisplay [monitor:Nr/Name] <Breite> <Höhe> <Farbtiefe (Bit)> <frequenz>
nircmd.exe setdisplay 1920 1080 24 60
nircmd.exe setdisplay monitor:1 1920 1080 24 60
Farbtiefe kann ab Win8.1 nur 24 oder 32 (HDR) sein!!!!!
Hierzu suche ich nun die Möglichkeit, wie ich die Bildwiederholungsrate mittels Konsolenbefehl oder sonst einer API Schnittstelle auf Windows 11 einstellen kann.
-> PowerShell
Dort kannst du die aktuelle Bildwiederholrate auslesen und auch setzen.
$RefreshRate = Get-WmiObject -Class:Win32_videocontroller | Select-Object -ExpandProperty currentrefreshrate
echo $RefreshRate
gibt dir die aktuelle Einstellung wieder.
Set-ScreenResolution -Width <Pixel> -Height <Pixel> -Frequency <Wert>
setzt die Einstellung.
Set-ScreenResolution -Width 2560 -Height 1440 -Frequency 60
würde die Auflösung auf 2560 x 1440 Bildpunkte mit einer Wiederholfrequenz von 60Hz setzen.
Wo hast Du denn das ausgegraben?
Da fehlt aber noch der link zum passenden Modul, welches unter Powerschell zu installieren wäre...🙃
Leider ist di Sache nicht so einfach und
Get-WmiObject -Class:Win32_videocontroller ...
scheitert kläglich , wenn ein 2.Monitor am Rechner hängt. Zudem ist Get-WmiObject deprecated! Powershell ab 6 unterstützt nur noch Get-CimInstance !
Das programatische ändern von Displayeigenschaften ist ei ziemlicher Krampf.
da man keinen Beliebigen Werte einsetzen kann
- https://www.c-sharpcorner.com/uploadfile/GemingLeader/changing-display-settings-programmatically/
- https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changedisplaysettingsexw
- https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changedisplaysettingsw
- https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-devmodea
Set-ScreenResolution -Width 2560 -Height 1440 -Frequency 60
Der Teil funktioniert leider nicht.
Set-ScreenResolution : Die Benennung "Set-ScreenResolution" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt.