Vista has this nice feature called "Transient Multi-Monitor" (TMM) service which detects when monitors are added/removed from your laptop. Unfortunately, it has a habit of LOSING ITS MIND and resetting your display resolution at random times. For example, if you connect a new monitor or (lately) if the screen locks. When I unlock the screen, it resets to 800x600 or some other lame resolution.
This is all controlled by the "TMM" which is run by the task scheduler. If you don't have multiple monitors, then you can just disable it in the Task Scheduler and solve the problem. I, however, DO have multiple monitors which I'm often changing. It worked fine for a while, but has degraded to chaos lately.
Here's a good article about resetting it the registry settings so you can start over and see if it fixes your problems:
These are stored in HKEY_CURRENT_USER\Software\Microsoft\MobilePC\TMM and you can simply delete the tree and have it start over. You need to logout/in to make it fix itself. There are also a lot of semi-related keys stored here: HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO that have similar settings. I don't know what the effect of changing those would be...
Follow up to this in Windows 7. I had an issue where every time I disconnected/reconnected my 3rd monitor to my laptop, it would alternate between "Generic PnP Monitor" with the correct 1920x1200 resolution and "Generic NON-PnP Monitor" with INCORRECT 1600x1200 resolution.
ReplyDeleteThrough looking at the monitor driver settings, I discovered that it was using "MONITOR\Default_Monitor" instead of MONITOR\HSD24CD path. Looking at the registry, I found these settings:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY
Had a bunch of entries for each kind of monitor. I attempted to delete the "Default_Monitor" key path and it generated some errors about access denied. However, in reconnecting the monitor, it seems to ALWAYS find the correct resolution now.