

Note that the way I've declared SetSysColors you can only change one colour at a time. It would need copying into your PowerShell stuff. I've updated your class to clear the background and set the colour to purple. This sends the WM_SYSCOLORCHANGE message to all top-level windows to notify them of the change. RegistryKey key2 = ("Control Panel\\Colors", "0 118 163") documented way to change the system colours is the SetSysColors function. RegistryKey key = ("Control Panel\\Desktop", 0) SystemParametersInfo(SetDesktopBackground, 0, "", UpdateIniFile | SendWinIniChange) Public const int SetDesktopBackground = 20 Public const int SendWinIniChange = 0x02 You can go back into settings and change this at any. Private static extern int SystemParametersInfo(int uAction, int uParm, string lpvParam, int fuWinIni) Yes, you can tick start with windows in settings and also click a run as admin command (beside it) to give it permanent start up priority. Below is what I have so far, if anyone seeing anything I could do different I would appreciate the help!

WINDOWS 7 LIVE DESKTOP BACKGROUND UPDATE
The registry keys update just find but the changes don't take effect until after I reboot.

I've seen a few solutions and tried them out for myself, but I can't get them to work either. I think it may have something to do with setting the SystemParametersInfo, but I don't know for sure. I've found many solutions online but I cannot find one that works for me. I would like to do this without rebooting, but unfortunately cannot get the changes to take effect immediately on a windows 7/8 platform. I am running a powershell script to change the background to a certain set of colors.
