ショボ短歌会

只今、C#で壁紙変更のできるプログラムを作成しています。
こちらで用意したイラストを自由に選んで壁紙にできるというものなのですが、
シャットダウンしてもう一度起動すると壁紙が消えて青い背景になってしまいます。
プロパティを見るとちゃんとその壁紙が設定されているのですがどうやら表示されてないようです。

SystemParametersInfo( SPI_SETDESKWALLPAPER , 0 , bitmapFile , SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );

で変更をかけているのですが、何か足りないのでしょうか・・・?
画像ファイルを直接選んで右クリック→「背景画像にする」だとこの現象は起こりません。
ちなみにOSはXP、
開発環境はVisualStudio2005です

解決策、考えられる原因など教えていただけますでしょうか。

あと、剥がす事はできるのですが
一度壁紙を変えると以前の壁紙に戻す事が出来ません
プレビューのような状態にする方法も教えていただけると嬉しいです。

よろしくお願いします。

A 回答 (1件)

参考URLを見る限り、そのAPIでは現在の画面が書き換わるだけみたいです。



PC起動時は以下のレジストリキーを読んでいるようなので、ここも更新する必要がありそうです。
・HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper

参考URL:http://smdn.invisiblefulmoon.net/ikimasshoy/dotn …
    • good
    • 0
この回答へのお礼

>PC起動時は以下のレジストリキーを読んでいるようなので、ここも更新する必要がありそうです。
>・HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper

レジストリ、盲点でした
根本の設定を変えてるわけではなかったとは・・・
いろいろ調べてレジストリの設定処理を追加したところ解決しました。
あと、レジストリを弄ってるうちにプレビューも解決。

初めてレジストリを弄ったので、色々勉強になりました
本当にありがとうございますm(_ _)m

お礼日時:2009/01/26 19:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!