Windows XP: изменение цвета фона программно (как перерисовать рабочий стол после изменения ключа реестра?) - PullRequest
1 голос
/ 08 марта 2011

Как программно изменить цвет фона / обоев в Windows XP? Я изменяю ключ реестра HKEY_CURRENT_USER \ Control Panel \ Colors \ Background (с помощью regedit), но изменение этого ключа не меняет цвет фона, хотя этот ключ изменяется, когда я меняю цвет в окне «Свойства экрана». Есть идеи почему?

РЕДАКТИРОВАТЬ: ах, если я изменю ключ и перезагружаюсь, эффект принимает изменения. Итак, как мне сделать изменения без перезагрузки?

Ответы [ 2 ]

4 голосов
/ 08 марта 2011

Я думаю, вам нужно вызвать функцию Windows API SetSysColors .

0 голосов
/ 08 марта 2011

Вы не можете сделать это, изменив реестр напрямую. Вам необходимо использовать функцию API SystemParametersInfo с флагом SPI_SETDESKWALLPAPER, а также передать SPIF_SENDCHANGE в качестве последнего параметра, чтобы трансляция изменений была передана другим приложениям (включая диспетчер окон).

Кстати, изменение фоновой группы путем редактирования реестра с помощью RegEdit не является "программным".

...