Persistent Windows

Important update!

It seems as though the latest AMD catalyst drivers or some other magical update as of April 22nd, 2015 no longer causes this issue! This project will be on indefinite hold and I welcome anyone taking it over and am happy to assist with anyone who has any questions on it.

What is PersistentWindows?

A poorly named utility that persists window positions and size when the monitor display count/resolution adjusts and restores back to it’s previous settings.

For those of you with multi-monitors running on a mixture of DisplayPort and any other connection, you can run this tool and not have to worry about re-arranging when all is back to normal.

The tool is a bit crude and brute forced.

Download alpha version here!

Interested in contributing or just checking out the source? Check out the CodePlex page

Persistent Windows - Functionality Survey

Feature Priority List

Release notes

  • 2015-02-27
    1. Modified app to run in SysTray
    2. Removed platform constraint so hopefully 32bit(x86) works
  • 2015-01-20
    1. Fixing another bug when restoring in many circumstances
  • 2015-01-18
    1. Improved Diagnostics, UI scrolls to bottom to be slightly more useful for me
    2. Changing capturing logic from events to timing again, until I have time to write unmanaged global window hooks
    3. Fixing various bugs
  • 2014-10-30
    1. Fixing some logging stuff
    2. Fixing freeze lock at startup
    3. More diagnostics
  • 2014-10-28
    1. Added even more logging to figure out what’s going on in some instances
    2. Pushed code to CodePlex
  •  2014-10-21
    1. Added actual logging to a file for diagnostics
    2. Also including the monitor top and left locations as a key since order doesn’t seem to be deterministic
    3. Removing retry logic since it did nothing but increase the time to restore
  • 2014-10-17
    1. Improved the diagnostic view to show more relavant information on what’s going on
    2. Major changes to the main processor so that it invokes the restore when it detects a resolution change
    3. Added logic to restore maximized windows correctly, by un-maximizing them then re-maximizing.
  •  2014-10-13
    1. Primary brute forced goals achieved. All windows appear to be restoring back to original location.

8 thoughts on “Persistent Windows”

  1. Could this be adapted to eliminate the chaos that occurs for the relative placement of multiple monitors when one disappears?

    I have a large number of monitors, some oriented upside down (narrow bezel on three sides). If I power off one monitor, all of the others rearrange themselves into a single row.

  2. Very useful when I play games in full screen mode which, especially like older games, don’t support high resolution.

    I can stop windows resizing after the full screen game.

    My video card is GTX 660 but nVidia panel cannot help me

  3. Looks like there’s still some use (and demand) for this software. While the more recent AMD drivers seem to have somewhat mitigated this problem, at times the behavior persists and only with a reboot can I restore proper functionality. This can be inconvenient when performing work that requires several hours to complete. I’d like to see this developed further and minor bugs worked out.

  4. I tried to contact you via your contact me page but there is a captcha error.

    I am not sure what your name is but I want to thank you for this utility. I have a 4k Acer display connected to a NVidia card with Windows 7 and I tried everything like regedit, windowsKey+D and others and nothing worked upon waking from sleep. This is the only thing that works and it works perfectly for me. I also have a power strip that denies power to all devices when the computer sleeps.

    Please feel free to contact me. I could take over the project but this code should be built into Microsoft windows!

    Thanks again,

  5. Left a survey response also. This tool is still needed and it needs one fix. It restores minimized window sizes properly but leaves them unminimized. I hope you will consider fixing that. Thanks

Leave a Reply