3
1
Hello all and thanks in advance for any assistance!
Every time I restart my PC at work, the group policy goes into effect and changes the background color of my system to the company default. In Windows 7, because the color of the background is a lighter color, it makes all icon text dark and impossible to read with my dark wallpaper. Also, if I remote into my machine and disable UI options for a smoother experience, the background is the very bright default color rather than a wallpaper... All that said, essentially I resort to changing the background color to a darker color manually by navigating to the "Window Color and Appearance" window and setting the Desktop color to a dark color.
So, I began looking for a way to automate this change, and my first thought is to create a simple BAT script and launch it from my Startup folder. I've figured out how to update the register entry for this particular color change, but I can't seem to figure out how to make it take effect in the same way that selecting the "Apply" button in the "Window Color and Appearance" window forces the change.
Here is the Register change via CMD:
REG ADD "HKEY_CURRENT_USER\Control Panel\Colors" /v Background /t REG_SZ /d "0 0 0" /f
That command appears to change the Registry value as intended. But, it never updates my actual desktop. Any thoughts on how to get it to apply the Registry change?
Here are a couple commands I've already tried, and they don't seem to do the trick:
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True
I've also tried stopping and restarting the Desktop Window Manager Session Manager, but the color change is still not applied:
NET STOP uxsms
NET START uxsms
I apologize for the long winded question. Any assistance is greatly appreciated!
Any easy way to reverse it (e.g. if you made a mistake in defining the color)? – Ploni – 2017-06-02T02:59:12.447
@Ploni Simply run the command again with the new desired color, or log off and back on to reset it to whatever is in the Registry. (It doesn't save unless you adjust the Registry as done in the question.) – Ben N – 2017-06-02T03:41:30.890
1Addendum to previous comment: it will complain about the type already being defined if you run the
Add-Type
command again in the same PowerShell session. If you want to do the change again with a different color, only use the one starting with[PInvoke]
, or just close and reopen PowerShell. – Ben N – 2017-06-02T14:31:23.283@BenN Excellent answer kind sir! This is working very well for me in initial testing, I very much appreciate the time. I will say that your addendum is not an issue for me; PS doesn't seem to care about executing the first command for me in neither PS nor PS ISE. As PS is installed by default on Windows, I think this is certainly a valid best answer and addresses my concerns definitively. Thanks again! – Urk – 2017-06-05T15:55:25.057
Great answer I wish I had found long before.
– not2qubit – 2020-01-09T20:01:32.820