Windows 7 auf 4k: Nach Display-Neustart alle Fenster zu klein und links oben

Der Samsung U28E590D ist ein schöner 4k-Monitor, der sich gerne ausschaltet, um Energie zu sparen. Das finde ich gut.

Jedoch tritt dann bei mir der Effekt auf, dass nach dem Powercycle des Displays alle Fenster auf 640×480 Pixel größenverändert und in die linke obere Bildschirmecke verschoben sind.

Meine Konfiguration:

  • Samsung U28E590D, Auflösung 3840×2160.
  • Anschluss via DisplayPort.
  • Nvidia Geforce GTX 760.
  • Windows 7 Professional 64bit.

Reproduziert werden kann das Problem, in dem man ein paar Fenster aufmacht, über den Bildschirm verteilt und dann den Monitor einmal aus- und wieder anschaltet. Wenn die Fenster danach alle oder teilweise links oben auf 640×480 Pixel geändert sind, hat man dieses Problem.

UPDATE: Obwohl das in diesem Artikel beschriebene Verfahren unmittelbar Abhilfe geschaffen hat, ist es nach einigen Neustarts wieder aufgetreten und kann nun nicht mehr wie in diesem Artikel beschrieben behoben werden. Ich möchte ein Update nachreichen, sobald mir eine bessere Lösung bekannt ist, die nicht „Upgrade auf Windows 10“ lautet. 😉

Das Verhalten kann natürlich umgangen werden, indem man das Ausschalten des Displays via Energieeinstellungen, Monitor Setup usw. so weit wie möglich unterbindet. Aber das kann’s ja nicht sein. Also ging ich in den  einschlägigen Foren stöbern und bin auf folgende Lösung gekommen:

Vorbedingung: Man hat Treiber für Grafikkarte und Monitor auf den neusten Stand gebracht, und das Problem besteht weiterhin.

1. Den Registry-Editor regedit.exe starten.

2. Den folgenden Schlüssel aufsuchen:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

3. Diese Teilstruktur zur Sicherheit exportieren.

4. Unterhalb dieses Schlüssels sind diverse Einträge, möglicherweise von früheren Grafikkarten und Monitoren. Es sieht ungefähr so aus:

screenshot

Alle Unter-Schlüssel (in meinem Fall die NVD00000_... und SAM0C...) löschen.

5. Einmal neu starten, die Schlüssel werden jetzt neu angelegt.

Zwischenstand: Das Problem bestand in meinem Fall dann immer noch.

6. Einträge in den Unter-Schlüsseln wo nötig wie folgt korrigieren:

Jeder der im obigen Screenshot gezeigten Unter-Schlüssel NVD... und SAM... hat selbst wieder zwei ineinander verschachtelte Unterschlüssel 00 und 00\00. In 00 liegen die Werte PrimSurfSize.cx, PrimSurfSize.cy und Stride. In 00\00 liegen ActiveSize.cx und ActiveSize.cy.

In meinem Fall hatte nur einer der Schlüssel die korrekten Werte – wichtig: Bitte die folgenden Werte nicht einfach abtippen sondern wirklich den Unterschlüssel finden, der die Werte enthält, die für den eigenen Monitor Sinn machen (erkennbar an den korrekten x- und y-Werten):

                  hexadezimal dezimal
PrimSurfSize.cx           f00    3840
PrimSurfSize.cy           870    2160
Stride                   3c00   15360

ActiveSize.cx             f00    3840
ActiveSize.cy             870    2160

Diese Werte in die anderen Schlüssel und Unterschlüssel übertragen.

7. Nochmal neu starten.

8. Testen wie zuvor – das Problem sollte behoben sein.