- PR -

SystemParametersInfoによる壁紙の変更

1
投稿者投稿内容
watermelonweb
会議室デビュー日: 2007/09/23
投稿数: 4
投稿日時: 2007-10-17 21:41
C#.NETで、デスクトップの壁紙を変更するプログラムを作成しています。
壁紙の変更には、SystemParametersInfoを使用しています。

SystemParametersInfo
(SPI_SETDESKWALLPAPER, 0, ビットマップのファイル名, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);

この関数を使用しても壁紙が変更されず、デスクトップの壁紙が消されてしまいます。
何度か試してみたのですが、どうもビットマップのファイル名の文字数が127文字以下
でないと、壁紙が設定できないように思えます。

MSDNなどを見てみたのですが、ファイル名が127文字以下でなければならないという
制限は見つかりませんでした。
(調べ方が悪かったのかもしれませんが、、、)

ファイル名は127文字以下でないとならないのでしょうか。
それとも別の原因で設定できないのでしょうか。
OSはWindows XP SP2です。

よろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-18 01:17
引用:

watermelonwebさんの書き込み (2007-10-17 21:41) より:

この関数を使用しても壁紙が変更されず、デスクトップの壁紙が消されてしまいます。
何度か試してみたのですが、どうもビットマップのファイル名の文字数が127文字以下
でないと、壁紙が設定できないように思えます。


実際に試せば確認できることなのでまあそうなのでしょう。 対応策として思いついたのはショートファイル名を使うというところですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
watermelonweb
会議室デビュー日: 2007/09/23
投稿数: 4
投稿日時: 2007-10-18 20:30
じゃんぬねっとさん、ご回答ありがとうございます。
やはりそういうものだと考えることになるんですね。

ショートファイル名を使うという方法を調べてみることにします。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)