どうすればいいのでしょうか?
OSはWindows 7 Starterです。
代わりに、Win32APIのSystemParametersInfo関数も使ってみましたが、ダメでした。
// ActiveDesktopインターフェイスによる壁紙の変更 (By Kpan) //参考にしたサイト http://lhsp.s206.xrea.com/hsp_system.html#9 #define CLSID_ActiveDesktop "{75048700-EF1F-11D0-9888-006097DEACF9}" #define IID_IActiveDesktop "{F490EB00-1240-11D1-9888-006097DEACF9}" #usecom IActiveDesktop IID_IActiveDesktop CLSID_ActiveDesktop #comfunc IActiveDesktop_ApplyChanges 3 int #comfunc IActiveDesktop_SetWallpaper 5 wstr, int #comfunc IActiveDesktop_SetWallpaperOptions 7 int, int ; 壁紙の表示位置 #enum WPSTYLE_CENTER = 0 // 中央に表示 #enum WPSTYLE_TILE // 並べて表示 #enum WPSTYLE_STRETCH // 拡大して表示 onexit *exit newcom adesktop, CLSID_ActiveDesktop sdim filepath, 256 input filepath, 400, 22 objsize 20, 22 pos 400, 0 button "...", *setpath pos 200, 40 objsize 80, 22 button "適用", *setwallpaper stop *setpath dialog "bmp;*.gif;*.jpg;*.png;*.htm;*.html", 16, "背景ファイル" if stat = 0 : stop filepath = refstr objprm 0, filepath stop *setwallpaper ; 壁紙ファイルの指定 (第2パラにファイルパス、空文字だと壁紙「なし」) IActiveDesktop_SetWallpaper adesktop, filepath ; WALLPAPEROPT構造体 (要素1に表示位置) WALLPAPEROPT = 8, WPSTYLE_TILE ; 壁紙オプションの指定 IActiveDesktop_SetWallpaperOptions adesktop, varptr(WALLPAPEROPT) ; 変更の反映 IActiveDesktop_ApplyChanges adesktop, 7 mes "done." stop *exit delcom adesktop end