アプリ版:「スタンプのみでお礼する」機能のリリースについて

APIで壁紙を変更させようと思ったのですが、なにやらbmp形式しかAPIでは操作できないようです。JPG形式のファイルを壁紙にするにはどうしたらよいでしょうか?C:\WINDOWS\Web\Wallpaperの中にあるファイルがAPIで壁紙にできないのです。具体的にはSystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID)path, SPIF_UPDATEINIFILE|SPIF_SENDCHANGE);関数を使用しています。これを実行してもbmp形式は壁紙に現れるのですが、jpg形式は現れず、青画面になってしまいます。しかし、これらのファイルを右クリックして「デスクトップの背景に設定」を指定すると壁紙になるのでAPIで操作して壁紙にする方法があると思います。ご存知の方、どうかよろしくお願いします。

A 回答 (4件)

既出のようにGDI+(CImageとか)が使えるのであれば、それが一番簡単です。


配布されているライブラリとしてはIJGのものがもっともオフィシャルだと思いますが、使いにくいと評判のようです。
http://www.ijg.org/

こんなのもありました。
http://www.vector.co.jp/soft/win95/prog/se222453 …

#2でAPIでは無いと書きましたが、OleLoadPictreを使えばできるかもしれません。
試したことも無いですし、情報が少ないのでわかりませんが。

JPEGファイルの読み込みはこのカテゴリでも何度か取り上げられているので、検索すると何か参考になるかもしれません。
    • good
    • 0
この回答へのお礼

hofuhofuさん。貴重なアドバイスありがとうございました。この変換はやはり時間もお金も少しかかりそうなので、ご紹介させていただいたルーチェさんのDLLを使わせていただいて実現できました。

お礼日時:2004/07/31 17:50

Windows標準の機能ということで、GDI+をお使いになってみてはいかがでしょう。


GDI+はWindowsXPから搭載された機能ですが、DLLは再配布可能で、WindowsXP以外でも動作します。

VBのサンプルですが、下記のページが参考になるかと存じます。

参考URL:http://www31.ocn.ne.jp/~heropa/vb42.htm
    • good
    • 0

jpeg画像を壁紙にするにはアクティブデスクトップを有効にする必要があるはずです。


http://www5a.biglobe.ne.jp/~dinah/tips/wintipsp. …
http://techtips.belution.com/ja/vc/0033/

自動的にjpeg→bmp変換をするようにしたほうが色々と便利だと思いますが、APIレベルではこの機能は無いですし、jpegデコーダーを自作するのは大変ですので、コンパイラ付属のものや公開されているライブラリを使うことになります。

参考URL:http://www5a.biglobe.ne.jp/~dinah/tips/wintipsp. …
    • good
    • 0
この回答へのお礼

hofuhofuさん、ありがとうございました。
大変参考になりました。

jpegデコーダーを自作するのは大変ですので、コンパイラ付属のものや公開されているライブラリを使うことになります。

とありますが、なにか知っているものでもありますでしょうか?

お礼日時:2004/07/28 21:53

>これらのファイルを右クリックして「デスクトップの背景に設定」を指定すると壁紙になる



これはIEの処理動作のことじゃないかと思うんですけど、それをした際に壁紙を指示するレジストリ・キーを検索して中を見てください。
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
ここですが
C:\Documents and Settings\[ユーザー名]\Application Data\Microsoft\Internet Explorer\Internet Explorer 壁紙.bmp
こういうのが入ってきますよ。

これで何が起きているのか推定できると思いますが。
    • good
    • 0
この回答へのお礼

ShaneOMacさん。回答ありがとうございます。ShaneOMacさんに言われたとうり調べたところ、*.jpgファイルを右クリックして「デスクトップの背景に設定」を指定するとC:\\Documents and Settings\\FrameWorker\\Local Settings\\Application Data\\Microsoft\\Wallpaper1.bmpファイルが作成されることがわかりました。しかし、試しにこれを手作業で*jpgファイルをWallpaper1.bmpに変換してWallpaper1.bmpを右クリックして「デスクトップの背景に設定」を指定すると壁紙にはなりません。ここらへんの変換処理がおそらく必要になると思うのですが、それがわからないのです。もし、ご存知でしたらよろしくお願いします。

お礼日時:2004/07/26 00:40

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