Disable "Do you want to change the color scheme to improve performance?" warning
Assuming you realize this message is informing you your system is low on resources and is asking you to disable Aero so it can keep performing at optimum speed,
- Go to the Start Menu and type Action Center on the Search box
- Start it (it should be the top entry, under the "Control Panel" group)
- On the left sidebar, click
Change Action Center settings
- Untick the
Windows Troubleshooting
checkbox, under "Maintenance Messages". - Click the
Ok
button and you are done.
Here is a screenshot of the setting screen:
Alternatively:
- You can try and keep this setting just as it is and switch to Basic desktop mode before launching the applications that usually fire up this Action Center notification. Or,
- You can right click the icons you use to fire up these full screen applications, clicking properties and under the Compatibility tab tick
Disable desktop composition
. This will disable the Desktop Window Manager Session Manager service during execution of this application which will increase system and video memory and avoid some application incompatibilities. A likely cause for your Action Center message if you have enough system and video memory but are stuill getting this message with certain games or full screen applications.
I'm constantly in a similar situation even though I never get that exact same message, and have done a bit of testing around.
To my understanding, the core resource that is under stress here, is the GPU memory. But this doesn't necessarily indicate that you're running out of this resource in general. It might just mean the Desktop Window Manager has detected that you're running so low that one specific feature of this service could be disabled to free up more memory.
To test this, I started opening up GPU memory intensive applications:
This is somewhat above average use on my triple-screen setup with a few key players running (Visual Studio 2012 (hardware acceleration enabled), PhpStorm, Aptana Studio, Chrome, Firefox, IE, ...). So, yeah, if you only have a 1 GB card and this would be your usual usage scenario, you'd already have a problem.
I had to push a bit further and start a couple more Visual Studio instances...
...until it was nearing the 1.5 GB mark and...
SNAP! This caused Windows to kill desktop compositing completely (and free up some precious resources).
Now, when I'm already at a critical level, and I start an application that uses excessive amounts of GPU memory in fullscreen, I can even go beyond this critical limit. Here's the result after running Black Mesa for a while on 2560x1440 at max details:
So, two things can be deducted from this. While going over the 75% mark on the desktop can force Windows to disable desktop composition, when reaching the same limit in a fullscreen application (and, optionally exiting that application) desktop composition is not disabled.
The second thing is, while you're in your game, you can get the idea "Hey, I have enough resources to run this game, why don't I have enough resources for the desktop?". The reason is, both require memory at the same time.
Windows might only be able to tell you about the memory situation after you exited the game. So, when I start another Visual Studio after exiting Black Mesa...
So, what can we do about this?
Get more GPU memory
Sweet and simple.
Disable Desktop Composition (per process)
As was already suggested, you can disable desktop composition for a single executable. This has the effect that desktop composition is temporarily disabled while the executable is being executed. This drastically reduced the overall memory consumption while the application is executed in my tests:
The bounty notice mentions that this is undesirable, as this is potentially a lot of work.
Disable Desktop Composition (globally)
I wouldn't consider this a solution as desktop composition is usually desired. But this is where to disable it:
I just want to get rid of the annoying message!
Just because you remove the warning "Your battery is almost empty! You can only talk for 10 more minutes!" does not mean you can talk for longer than 10 minutes. In fact, your phone will most likely simply shut off and that's it. Now how's that for an improvement?
I never assumed the message can be turned off and I don't see how that could be considered a benefit.
You might think you know better, but you don't. If the system is telling you it's running out of resources, it is.
But it isn't! I know!
Ok, let's assume Windows is just not smart enough to detect the special situation you're in and the warning message is simply an annoying inconvenience. What now?
The thing is, me personally, I'm also affected by this and it's annoying the hell out of me. Because I don't even get that warning message. Windows simply switches my color profile and that's it. And I like that actually.
When it happens I usually quickly run a script that calls
net stop uxsms & net start uxsms
Here is the full script. It will pop open a UAC prompt and restart the service so it can be triggered from anywhere. I have it pinned to the start menu.
@if (1==1) @if(1==0) @ELSE
@echo off&SETLOCAL ENABLEEXTENSIONS
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"||(
cscript //E:JScript //nologo "%~f0"
@goto :EOF
)
NET STOP uxsms
NET START uxsms
@goto :EOF
@end @ELSE
ShA=new ActiveXObject("Shell.Application")
ShA.ShellExecute("cmd.exe","/c \""+WScript.ScriptFullName+"\"","","runas",5);
@end
This restarts the Desktop Window Manager and brings me back to my composited desktop (and it frees up lots of resources in the process, yay).
Knowing this, you can also construct yourself a special gaming environment where you stop the service before starting the game to combat this whole behavior. However, this will cause identical behavior to disabling desktop composition for a single executable through the file properties.
I have been getting this damn message nagging me all the time as well (for long time now) on Windows 7 PC's, mainly when remotely accessing them by VNC (any flavor), but wanting to keep Aero and desktop composition turned on (surely not using VNC mirror driver else no Aero for sure).
The switch to basic theme, even if temporarily, would for example break gui's for some old apps (like the ones getting DPI virtualization, only available with Aero + desktop composition), that was one of the reasons I wanted to keep Aero and desktop composition turned on, as default, but just stop the damn message, moreover the system was actually running fine, as many users confirm on comments in this page, then the problem was just the message!
Unticking the "Windows Troubleshooting" checkbox under "Maintenance Messages" is just no solution, as many also confirm on comments here, it doesn't work, and disabling desktop composition is... well... like telling to turn off your car motor because it doesn't work properly... i.e. not a solution...
After being nagged with this message for long time I decided I really had to stop this, then I debugged dwm.exe and finally found how to kill the message permanently... if you want to do the same and you have Windows 7 SP1 x64 (it is probably different for x86) just patch your dwm.exe like I did:
Warning: Only do this if you know what you are doing, else you may break your system !!!
for Windows 7 SP1 x64:
(original file md5: f162d5f5e845b9dc352dd1bad8cef1bc)
open file on an hex editor and search for this pattern:
FF15D2A5000085C079
replace it by:
9090909090909090EB
(patched file md5: 2ab05d7454dcd8ef20a7f99b3390973d)
for Windows 7 SP1 x64 + KB3125574 Convenience Rollup:
(original file md5: c206c9dbfc34afd367dd150d979a5185)
open file on an hex editor and search for this pattern:
FF1562B1000085C079
replace it by:
9090909090909090EB
(patched file md5: 8243c03dad2b9aaaddabe65e4869e2ae)
(the patch just removes the call to the TaskDialogIndirect api, responsible to show the message window and forces a jmp, that would originally be taken if the call return is success... the jmp must be taken as code is apparently also done to just switch to basic theme if it can't show the message)
Note that to be able to do changes/rename/replace your dwm.exe file you need to stop "Desktop Window Manager Session Manager" service (on services.msc), so that it stops running, and take file ownership and adjust permissions... as the file is owned by TrustedInstaller by default...
Also note that in my analysis to dwm.exe I found that there are actually two of these messages (similar but not the same):
- one is the one shown at the top question screenshot, this one shows up when dwm.exe is using some cpu resources... something like 30% may be enough to trigger it (and VNC makes that happen), my patch removes this message.
- there is another similar message, but with slightly different text, that shows up when dwm.exe is using too much GPU memory, that one is not the one shown on the question screenshot and my patch will not remove that message.