Windows XP中:以编程方式更改背景颜色(如何在更改registry项后重新绘制桌面?)

如何以编程方式更改Windows XP上的背景/壁纸颜色? 我正在更改registry项HKEY_CURRENT_USER \控制面板\颜色\背景(使用registry编辑器),但更改该键不会更改背景颜色,虽然更改从显示属性窗口中的颜色时该密钥已更改。 任何想法为什么?

编辑:啊,如果我改变的关键和重新启动,效果需要改变。 那么如何在不重启的情况下进行更改?

Solutions Collecting From Web of "Windows XP中:以编程方式更改背景颜色(如何在更改registry项后重新绘制桌面?)"

我想你需要调用Windows API函数SetSysColors 。

你不能直接更改注册表。 您需要使用具有SPI_SETDESKWALLPAPER标志的API函数SystemParametersInfo ,并且还要传递SPIF_SENDCHANGE作为最后一个参数,以将更改广播到其他应用程序(包括窗口管理器)。

顺便说一句,通过使用RegEdit编辑注册表来更改后端组并不是“编程式”的。