Windows: Monitor-Auflösung per Skript konfigurieren

Es kann verschiedene Gründe wie z.B. Präsentation, automatisierte Installation, Auflösung in Abhängigkeit vom angemeldeten Benutzer dafür geben, das man per Skript oder Verknüpfung eine bestimmte Auflösung der Anzeige einstellen möchte.

Mit Hilfe des kleinen Tools SetRes kann diese Aufgabe gemeistert werden. Es genügt bereits die horizontalen als auch vertikalen Werte anzugeben:

SetRes.exe h1024 v768

Ein Blick in die Hilfe lohnt, denn das Tool bietet mehrere Konfigurationsmöglichkeiten.

Konkrete Anwendung am Beispiel eines Kunden-Szenarios

Bei einem Kunden gibt es gelegentlich das Problem, das an einem PC sich plötzlich die Darstellung des Desktops ändert. Es wird zwar nach wie vor, laut Windows, die gleiche Auflösung verwendet, aber dennoch hat man plötzlich und unvermittelt ein kleineres Bild und große schwarze Balken. Lösungsversuche wie Grafikkarten-Treiber aktualisieren und Monitor-Kabel austauschen halfen nichts.

Auffällig war allerdings, das sich das Problem dadurch lösen lies, das man eine andere Auflösung einstellt und dann wieder zurückspringt. Das Ganze wurde dann als einfaches Skript auf dem Desktop des Anwenders hinterlegt:

@echo off

title Monitoraufloesung erneut einstellen

rem Liste mit Monitoraufloesung:
rem http://de.wikipedia.org/wiki/Vorlage:Monitoraufloesungen

rem --- 1. Schritt: Aufloesung auf einen anderen Wert setzen ---

 SetRes.exe h1920 v1080

rem --- 2. Schritt: Pause - 5 Sekunden warten ---

 timeout /T 5

rem --- 3. Schritt: Aufloesung auf den Wunsch-Wert setzen ---

 SetRes.exe h1920 v1200

Hinweis: Den Befehl “timeout” gibt es erst ab Windows Vista.

Wo der Fehler genau liegt, konnten wir leider nicht ermitteln. Der Kunde wollte zudem keinen größeren Aufwand an diesem einem Arbeitsplatz betreiben. Die schnelle und einfache Skript-Lösung kam da gerade recht.

Persönliche Bemerkung

SetRes hatte ich zuletzt 2005 mal verwendet und es lag noch auf unserem Dateiserver. Als der zuvor beschriebene Support-Fall eintrat war der workaround schnell eingerichtet. Gut finde ich außerdem, das es das Tool noch gibt und es weiterentwickelt wird.

23.10.2020

Um die Auflösung z.B. auf dem zweiten Display zu ändern, muss man zunächst mit

SetRes.exe d

die Adapter- und Display/Monitor-Nummer ermitteln. Hat man diese, kann man mit folgendem Befehl die Auflösung und Farbtiefe eines bestimmten Displays ändern:

SetRes.exe m1:0 h1920 v975 b32

In diesem Beispiel an Adapter 1 das Display/den Monitor 0 mit einer Auflösung von 1920×975 bei 32-bit Farbtiefe.

3 Kommentare

  1. Jens

    Genau was ich gesucht habe. Meine Frau spielt gerne Siedler, Teil 4 funktionierte aber unter Windows 10 nicht. Beim Spielstart kam immer nur: “Software 3D: Error initializing Graphic Interface!…” Googlesuche brachte schließlich die Lösung: Spiel installieren, neusten Patch aufspielen, das Tool DXGL nutzen und die Auflösung mit der passenden “GfxEngine.dll” auf 1920×1200 ändern. Spielt läuft dann – ABER: Man kann nicht bauen, da die Spielauflösung (1920×1200) nicht zur Desktopauflösung (3840×2160) passt. Kann man per Hand natürlich vor und nach dem Spiel umstellen – ist mir aber zu lästig.. und weiß ich das in einem Jahr noch? Ich bevorzuge 1-Klick-Lösungen.
    Also: SetRes.exe ins Spielverzeichnis kopiert und eine “Siedler4.bat” erstellt:
    @echo off
    SetRes.exe h1920 v1200
    start “” “S4.exe”
    :suche
    tasklist |find /i “S4_Main.exe” >nul
    if %errorlevel%==0 goto suche else goto ende
    :ende
    SetRes.exe h3840 v2160

    Da ich das Kommandofenster verstecken möchte noch die Datei “Siedler4.vbs” angelegt:

    Set ShellWSH = CreateObject(“WScript.Shell”)
    ShellWSH.Run “cmd.exe /c Siedler4.bat”, 0
    Set ShellWSH = Nothing

    Erst hatte ich ein Verknüpfung der “Siedler4.vbs” auf dem Desktop, da die meisten Spiele auf dem Rechner über Steam laufen, habe ich die “Siedler4.vbs” als Steamfremdes Spiel hinzugefügt. Kurz: Steam starten, Siedler 4 starten, spielen. Kein Gefummel mehr an der Auflösung vor und nach dem Spiel.

    Ich hoffe man kann meinen Ausführungen folgen.

  2. Hardy

    Bei mir war das Problem, dass unterschiedliche Anwender an einem Rechner mit unterschiedlichen Auflösungen arbeiten wollen.
    Hier war die Lösung SetRes in Aufgaben zu nutzen.
    Dabei sind dann 2 Trigger hilfreich:
    Bei Anmeldung
    Bei Verbindung mit Benutzersitzung (hier muss dann noch “Verbindung vom lokalen Computer” ausgewählt werden.
    Bei den Triggern ist noch eine Verzögerung von 5 Sekunden bei mir notwendig gewesen, da sonst SetRes eine Fehlermeldung lieferte, da wohl der Adapter noch nicht soweit war.
    Für jeden Benutzer war dann eine eigene Aufgabe anzulegen in der die gewünschte Auflösung in der Aktion anzugeben ist.

  3. Martin

    Der o.g. Link ist nicht mehr gültig, da der Autor des Programms sich offenbar in den Ruhestand verabschiedet hat. Auf seiner Retirement-Seite (https://www.iansharpe.com/) ist das Programm zwar aufgeführt, dort funktioniert der Download jedoch nicht.

    Allerdings ist der im Blogbeitrag genannte Link noch über Archive.org abrufbar, dort funktioniert auch der Download, z.B. via
    https://web.archive.org/web/20201029230651/http://www.atrandom.iansharpe.com/setres.php

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑