Windowsコード集 上のページ

#0004 壁紙を設定する

※この方法は Internet Explorer Version 4.00以降で追加されたActive Desktopを使用しているときには、正しく動作しません。
ソフトウェア等に組み込むときには、マニュアルなどでこの旨を補足する事をお勧めします。

システムサービスを利用する事によって、壁紙を簡単に設定する事ができます。
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,"filename.bmp",SPIF_UPDATEINIFILE);
下線部が壁紙に設定するファイル名となります。 通常Windowsフォルダを対象としますが、フルパスで指定する事で他のフォルダにある画像も表示する事ができます。

また以下のようにレジストリを操作する事で、表示方法も変えられます。 これは、SystemParameterInfo関数を呼び出したときに設定が有効になります。
HKEY hkey;
CHAR data[32];
if(RegOpenKey(HKEY_CURRENT_USER,"Control Panel\\desktop",&hkey) == ERROR_SUCCESS){
    // 壁紙の表示方法
    lstrcpy(data,"0");    // <- 中央に表示(並べて表示するときは"1"にする)
    RegSetValue(hkey,"TileWallpaper",REG_SZ,data,lstrlen(data));

    // 表示位置(X)
    lstrcpy(data,"100");
    RegSetValue(hkey,"WallpaperOriginX",REG_SZ,data,lstrlen(data));

    // 表示位置(Y)
    lstrcpy(data,"100");
    RegSetValue(hkey,"WallpaperOriginY",REG_SZ,data,lstrlen(data));

    RegCloseKey(hkey);
}

// 壁紙設定
SystemParameterInfo(......);


上のページ