APIで壁紙を変更させようと思ったのですが、なにやらbmp形式しかAPIでは操作できないようです。JPG形式のファイルを壁紙にするにはどうしたらよいでしょうか?C:\WINDOWS\Web\Wallpaperの中にあるファイルがAPIで壁紙にできないのです。具体的にはSystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID)path, SPIF_UPDATEINIFILE|SPIF_SENDCHANGE);関数を使用しています。これを実行してもbmp形式は壁紙に現れるのですが、jpg形式は現れず、青画面になってしまいます。しかし、これらのファイルを右クリックして「デスクトップの背景に設定」を指定すると壁紙になるのでAPIで操作して壁紙にする方法があると思います。ご存知の方、どうかよろしくお願いします。
No.4ベストアンサー
- 回答日時:
既出のようにGDI+(CImageとか)が使えるのであれば、それが一番簡単です。
配布されているライブラリとしてはIJGのものがもっともオフィシャルだと思いますが、使いにくいと評判のようです。
http://www.ijg.org/
こんなのもありました。
http://www.vector.co.jp/soft/win95/prog/se222453 …
#2でAPIでは無いと書きましたが、OleLoadPictreを使えばできるかもしれません。
試したことも無いですし、情報が少ないのでわかりませんが。
JPEGファイルの読み込みはこのカテゴリでも何度か取り上げられているので、検索すると何か参考になるかもしれません。
hofuhofuさん。貴重なアドバイスありがとうございました。この変換はやはり時間もお金も少しかかりそうなので、ご紹介させていただいたルーチェさんのDLLを使わせていただいて実現できました。
No.3
- 回答日時:
Windows標準の機能ということで、GDI+をお使いになってみてはいかがでしょう。
GDI+はWindowsXPから搭載された機能ですが、DLLは再配布可能で、WindowsXP以外でも動作します。
VBのサンプルですが、下記のページが参考になるかと存じます。
参考URL:http://www31.ocn.ne.jp/~heropa/vb42.htm
No.2
- 回答日時:
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. …
hofuhofuさん、ありがとうございました。
大変参考になりました。
jpegデコーダーを自作するのは大変ですので、コンパイラ付属のものや公開されているライブラリを使うことになります。
とありますが、なにか知っているものでもありますでしょうか?
No.1
- 回答日時:
>これらのファイルを右クリックして「デスクトップの背景に設定」を指定すると壁紙になる
これはIEの処理動作のことじゃないかと思うんですけど、それをした際に壁紙を指示するレジストリ・キーを検索して中を見てください。
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
ここですが
C:\Documents and Settings\[ユーザー名]\Application Data\Microsoft\Internet Explorer\Internet Explorer 壁紙.bmp
こういうのが入ってきますよ。
これで何が起きているのか推定できると思いますが。
ShaneOMacさん。回答ありがとうございます。ShaneOMacさんに言われたとうり調べたところ、*.jpgファイルを右クリックして「デスクトップの背景に設定」を指定するとC:\\Documents and Settings\\FrameWorker\\Local Settings\\Application Data\\Microsoft\\Wallpaper1.bmpファイルが作成されることがわかりました。しかし、試しにこれを手作業で*jpgファイルをWallpaper1.bmpに変換してWallpaper1.bmpを右クリックして「デスクトップの背景に設定」を指定すると壁紙にはなりません。ここらへんの変換処理がおそらく必要になると思うのですが、それがわからないのです。もし、ご存知でしたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 壁紙フォルダが表示されない 1 2022/11/16 21:58
- デスクトップパソコン PCの多仕上げ画面の戻し方を教えてください 3 2023/03/08 16:47
- リフォーム・リノベーション 壁紙、貼り換えるか、塗装するか 1 2022/08/16 22:12
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- リフォーム・リノベーション 石膏ボードに壁紙を貼るための下地のパテについて 4 2022/10/27 22:16
- その他(パソコン・スマホ・電化製品) win10 edgeの壁紙2種類の内 最終に表示される物を変更したい 5 2023/08/24 18:33
- リフォーム・リノベーション マンションの壁紙がへたってきたので剥がしてペンキ塗ろうと思いますが薄紙剥がすのが大変です。 2 2022/04/20 19:40
- その他(悩み相談・人生相談) ペーパーレス化に適したファイル形式 1 2023/04/13 20:28
- その他(IT・Webサービス) 制作したWebサイトを録画する際、画面サイズを小さくしたり大きくしてレスポンシブの動きを確認するので 1 2023/02/18 00:33
- Chrome(クローム) ノートPCのデスクトップ画面全体にアイコンが 現れず、画面の右1/3位が背景の壁紙のままです 5 2022/09/20 17:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
グローバル変数のよくない使い...
-
分割コンパイルの#defineについて
-
Excelマクロでの再読込み方法
-
CSVファイルへの保存の際、デー...
-
大きいサイズのテキストファイ...
-
FileOpen 関数で既にファイル...
-
iniファイルに追記がしたいです。
-
ファイル名の先頭にアンダース...
-
VC++の外部依存関係
-
ファイルの結合
-
ASP .NETでファイル選択ダイア...
-
ドラッグアンドドロップでファ...
-
SGファイルって何ですか?
-
HANDLE無効について
-
obj-c iOSのローカルディスク上...
-
[VBScript]ファイルの入出力を...
-
OpenDialog1->FileNameについて
-
fprintfで文字化け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
ファイル名の先頭にアンダース...
-
csvファイルを開かずに文字を検...
-
大きいサイズのテキストファイ...
-
テキストファイルの最終行を削...
-
ドラッグアンドドロップでファ...
-
分割コンパイルの#defineについて
-
バッチで118項目のCSVを処理し...
-
CSVファイルへの保存の際、デー...
-
グローバル変数のよくない使い...
-
C言語のfopenについて教えてく...
-
SGファイルって何ですか?
-
VBに、Cのincludeのようなもの...
-
ファイルの結合
-
fopenできる上限の変更
-
「VBScript」ADODB.Streamにお...
-
iniファイルに追記がしたいです。
-
XMLファイルの表示について
-
Excelマクロでの再読込み方法
-
VBAにてEXCEL以外のファイル(テ...
おすすめ情報