今、Ariesという壁紙チェンジャーを使っていて、30分ごとに、たくさんある画像ファイルからランダムに壁紙にするのに使っている。壁紙の表示のさせ方とか、色々細かくカスタマイズすることが出来るのだが、私の壁紙の管理の仕方が特殊なので、壁紙の管理機能に少し不満があった。というわけで、自分のための壁紙チェンジャーを作ることにした。
まず私が求める壁紙チェンジャーの機能は、下記の一点。
- 2台のPCで壁紙に使う画像ファイルを共有できるようにする
私は寮にあるデスクトップPCと、実家に帰るときや旅行のときに持ち歩くノートPCの2台持っている。この2つのPCで壁紙を共有したい。これを実現するために、以下の解決策を取ることにした。
- 壁紙に使う画像ファイルを置くディレクトリ(壁紙置き場)を用意する
- 壁紙置き場からランダムに選んだ画像ファイルを壁紙にする壁紙チェンジャーを作る
- 2台のPCで、壁紙置き場にある画像ファイルが同じになるように、画像ファイルをコピーしあう
まず、上の2番目にある壁紙チェンジャーを作ることにした。1番目と3番目は手作業で出来るし、そのためのプログラムを作るのは結構時間がかかりそうなので、とりあえず後回し。
問題は、壁紙を変更するプログラムをどう作るか。Windows用アプリをC++とかで作ったことがないので、使い慣れているJavaで作ることにする。しかし壁紙を変更する処理はJavaのAPIからでは無理っぽい。JavaからWindowsプログラムを起動することは簡単なので、指定した画像ファイルを壁紙に設定するプログラムを呼び出せばJavaでも壁紙を変更できる。で、そんなプログラムがフリーウェアで公開されてないかと、色々と探したが結局良いものがなかった。プログラムは見つからなかったが、壁紙を変更するためのWindows APIがSystemParametersInfo()であるとか、画像の表示位置はレジストリで変更するとか、プログラムを作るための情報は見つかった。
というわけで、自分で作ることにしたが、私のPCにはWindows APIを呼ぶCプログラムを作る開発環境がない。そこでVisual Windows for BC++を利用させてもらうことにした。Borlandが無償で提供しているBorland C++ Compiler 5.5を利用したフリーのWindows用開発環境はいくつかあったが、このVisual Windows for BC++が一番お手軽に始められそうだった。
で、作ったプログラムがこれ。思いっきりmain関数べた書きの100行にも満たないプログラムですな。明日からは、このプログラムを利用して壁紙チェンジャーの本体を作っていく。