壁紙(デスクトップなのになぜか壁紙である)を変更するには
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, ファイル名, SPIF_UPDATEINIFILE);
とする.
また,レジストリを変更する方法もある.(Win32s なら WIN.INI を変更する)
レジストリや WIN.INI を変更すれば Windows が変更されたことを察知して壁紙を変更してくれる.
void WriteWallPaperSection(LPCSTR szWallPaper)
{
HKEY hKey;
if( bWin95 == 0 ) {
// Win32s
WriteProfileString("Desktop", "Wallpaper", szWallPaper);
} else {
if( RegCreateKey(HKEY_CURRENT_USER, "Control Panel\\Desktop", &hKey) == ERROR_SUCCESS ) {
RegSetValueEx(hKey, "Wallpaper", 0, REG_SZ, (BYTE *)szWallPaper, strlen(szWallPaper) + 1);
if( hKey ) {
RegCloseKey(hKey);
}
}
}
参照