壁紙チェンジャー
作成日:1999/06/15
更新日:1999/09/09
久しぶりに、自分のためのプログラムを作りました。 発端は、わりと良い壁紙の画像がたくさん手に入ったこと。 気分によって時々壁紙を変更していたら、手間がかかってしようがないので 壁紙を一定時間毎に自動的に変更するプログラムを作ってしまおうと思い立ったのです。
さて、まずはじめに、どうやったらプログラムで壁紙を変更することが出来るか、 を調べます。 私の場合 MSDN(マイクロソフト・デベロッパーズ・ネットワーク) の CD が役に立ちましたが、Win32 APIのリファレンスなどを 見当をつけて探してみると良いと思います。(見てみるとわかると思いますが、 膨大な機能の数に驚くとともに、おっこんな機能もあるんだとわかって いろいろ作りたくなりますよ)
で、わかったことは"SystemParametersInfo"という API(アプリケーション・プログラム・インターフェース)を呼べば システムパラメータの状態確認や設定変更が出来ると言うこと。 さらに調べてみるとこのAPIのパラメータに"SPI_SETDESKWALLPAPER"という値と ビットマップファイルのある場所を指定してやれば壁紙を変える ことができそうです。 そのほかの機能としては、
ぐらいは欲しいと思います。
実現のめどがついたので、プログラムを作成する言語は何にしようかと考えます。 WIN32 API(プログラムからウィンドウズの機能を呼び出す仕組み)が 使える言語なら何でも良いのですが、 上記機能を満たすプログラムの作成ならVisual C++が簡単だと思われるので、 Visual C++を使うことにします。
まずは、Visual C++のウィザードで"Win32 Aplication"のスケルトンを作成します。 ウィザードに答えて行くだけで、何もしないプログラムができあがります。
ここで、コメントになっている"TODO"の部分に あらかじめ調べておいたSystemParametersInfo関数を挿入してやればOK。
SystemParametersInfo( // システムパラメータの設定API SPI_SETDESKWALLPAPER, // 壁紙の指定機能を使用 NULL, // 指定しない "kabegami.bmp", // ビットマップファイルの指定 0 // User Profileを変更しない );
これであとはコンパイルすれば完成。壁紙がきちんと変わることが確認できれば 後の機能をインプリメントしていきます。プログラムを作ったことがない人は 難しく考えがちですが、この程度の物ならVisual C++などの ウィザードが勝手に作った雛形にほんの数行書き足すことで簡単に出来てしまいます。 痒いところに手が届くようにパソコンを使いたいなら、プログラムの作り方も 勉強してみてはいかがでしょう。