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 called 00
. 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.