How can I stop windows re-positioning after waking from sleep?
This is an old question, but if anyone arrives here with the same issue, I suggest trying the solution posted here:
http://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/windows-7-movesresizes-windows-on-monitor-power/1653aafb-848b-464a-8c69-1a68fbd106aa
I'm running Windows 8.1 with two 2560x1440 displays on DisplayPort. When waking from sleep, all my windows had been pushed to one display, and some of them resized. This fixes the issue for me; now all my window positions and sizes are preserved. Here is the relevant link content:
I have found a work-around. Using Sysinternals ProcessMonitor I found that Windows was accessing the following Registry path:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration
My system had three entries:
DELF003YY7707BR0MUL_30_07D7_6A^9A3774EB79DEE3E3E38496CC7DF4D936
QHD32000001_31_07D6_D5^63E1ABDD175E7871DCAEB710418A0F75
SIMULATED_8086_2A42_00000000_00020000_1010100^CDE365D1B3F0942F0CF38BFB8E127AB4
Under each is a tree called
00
. Two of the keys are:
PrimSurfSize.cx
PrimSurfSize.cy
Under
00
was another branch also called00
. Two of the keys are:
ActiveSize.cx
ActiveSize.cy
In the first two configs (i.e.
DELF00...
&QHD3...
), the above keys were 1440x900, so they were not involved.The third (
SIMULATED...
) were set to 1024x768.I changed these to 1600x900 and the problem was solved.
Further I changed resolution (via control panel) to 1920x1080, the moving/resize issue returned, but the lower right corner was set to 1600x900, ie the
SIMULATED...
settings.So for some reason one of the configs does not get set correctly.
I don't know why there are three configs, I have only ever used one monitor.
The issue is most likely with the graphics driver. Whenever a single monitor is disconnected from a multimonitor setup in Windows, Windows will attempt to move everything from that screen onto the remaining screen(s). Usually, this will not occur when suspending/hibernating/shutting down the computer. Thus, it is probably because of the graphics driver doing one of the following:
- 'Disconnecting' the monitors when you put the computer to sleep, so when Windows awakens, it must re-determine where to place everything.
- Recognizing the monitors in a different order each time you bring the computer out of sleep, forcing Windows to rearrange your application windows.
Check to see if there is an update to your graphics driver by going to the chipset manufacturer's website.
If your computer has Intel HD Graphics you have to set Extend Display options (and resolution settings) from the Intel Graphics Control Panel. If you do it from the Windows Display settings it will reset after you wake it from sleep mode.
Here's a screenshot.