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.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
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.
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.
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