TL;DR - if the windows are moving to a VGA connected monitor, it looks like there are three options, in order of "fixed" to "workaround":
- Change the connection to that monitor to something other that VGA (changing to DisplayPort connection fixed it for me)
- Make the VGA monitor the Primary Monitor.
- Unplug the VGA monitor, then plug it back on each resume.
I had this problem - all the windows shifted to one monitor on resume from sleep / hibernate. The LCD monitor the windows shifted to was connected by VGA cable - my primary monitor is connected by DisplayPort, plus the laptop display.
Turning off the VGA monitor didn't force the windows to shift back to the primary monitor, but unplugging the VGA monitor did force the windows back.
I guess that the VGA connection does not report that the monitor is actually off, just that there is a monitor present, and Windows detects it before the DisplayPort connected monitor or even the internal laptop display, so moves the Windows to the VGA monitor.
Fortunately, the VGA connected monitor also has DisplayPort connection, so I changed the monitor to DisplayPort, and the problem was resolved.
9This workaround has no effect whatsoever on my system. – queezz – 2019-03-22T06:43:02.313
This worked perfectly for me. After upgrading graphics card the chrome window was on the main monitor after each wake-up from sleep. Now after uninstalling all grayed-out monitors its fine like it was before. Thanks – KYL3R – 2019-06-01T07:38:18.650
The flickering of the screens went away completly, so definitely a big improvement! The windows still move all to the same monitor though. – BluE – 2019-07-10T12:12:49.887
not working for me – HelloWindowsPhone – 2019-10-19T05:31:42.043
Confirmed as working 2020-01-02. I did "Uninstall device" to all grey icons except "Location: on Microsoft Basic Display Driver". – user19496 – 2020-01-02T10:49:25.150
In the end: I also had to do this https://superuser.com/a/1187076/19496 i.e. never turn off monitors.
– user19496 – 2020-01-04T08:14:28.220