The Microsoft Windows XP development team has decided that all users sharing a Windows XP PC must have the same display settings -- same resolution, same color depth, same refresh rate.
This is especially annoying in home environments, where mom and dad typically do "serious things" that require higher screen resolutions, like balancing bank accounts, and kids are running games or multimedia apps that often assume 800x600 or 640x480.
If you add to the equation the very nice "Fast User Switching" feature, you end up with the kids' games being displayed in a very small area on the screen or the data in dad's spreadsheet being displayed with only 10 rows!
After some investigation of the Windows XP new APIs, I decided to bite the bullet and try and work around that "design choice" (read: limitation).
Here's the current outcome: a rather small applet (though I've coded it using MFC to be "quicker to market," it doesn't need to be; if there's enough justification I might rewrite it in "plain SDK" code) that you need to run in each user's account, that will save the display settings independently for each user, and restore it at logon AND when switching among several active users.
The program is launched for each and every user -- don't worry, it's rather small -- and monitors the following events:
Each time such an event occurs the current user's display settings are saved in that user's part of the registry.
Conversely, each time a user logs in or becomes active, his/her saved settings are restored.
The program is distributed as a SETUP.EXE. Simply "run" the file by double-clicking on it in Windows Explorer. The current version is 188.8.131.52.
Once installation is complete, you do not need to reboot, just log off all active users and log back in, so that the program will be started.
First kill all instances of XPKeepPerUserDisplaySettings.exe using task manager (make sure you "show processes for all users"), then run the uninstall from the program's group.
If you get error messages like "Unable to restored saved display mode":
Suggestions for improvements, etc. greatly appreciated.
Don't hesitate to ask for assistance, my email address is: .
Note: Email addresses will not be visible if Java Script is not enabled, in which case write to: stephane (dot) barizien (at) centraliens (dot) net. (The purpose is to hide email addresses from spam scanners).
Sorry, folks, but there has to be some...
This program is provided free of charge, but is Copyright (c) Stéphane Barizien 2002.
It can be redistributed at no cost (other than shipment and/or media if appropriate) by any digital means provided this is done it the original unmodified form (Microsoft Installer .MSI package, containing the program's unaltered binaries and documentation), and the author remains clearly identified, and the above copyright notice is retained.
THE PROGRAM IS PROVIDED TO YOU "AS IS," WITHOUT WARRANTY. THERE IS NO WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL LICENSOR, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Last updated on 2004/02/01