非常駐型付箋紙アプリSPD配布

SPDはSourceforge.JPで配布することにしました。

http://sourceforge.jp/projects/spd/

常駐せずに壁紙に付箋を埋め込む非常駐型付箋紙アプリSPDの配布エントリーです。

Vectorの新着ソフトレビューでSPDが紹介されました。

SPD_SS_0[1]

【特徴】

・常駐せずに付箋を壁紙に保持する

・壁紙の配置は拡大だけでなく並べて表示、中央に表示にも対応。

 拡大表示での画質の低下が気になる方にもご利用頂けます。

・付箋の半透明での描画に対応。デスクトップの圧迫感を和らげます。

・付箋ごとにフォントと文字色、背景色を指定可能。

・付箋の重ね貼りが可能。

・付箋の位置を決める為の面倒な操作がありません。付箋を編集しているウィンドウを張りたい位置にD&Dするだけ。見たままの状態で壁紙に張り付きます。

【動作環境】

Microsoft .NET Framework 2.0以上がインストールされたWindows

SPDのWindows VISTA / 7 対応に向けて

SPDの動作OSに関しては明記してなくて、

>【動作確認環境】Windows XP

としてるけど、VISTAで”壁紙を変更”メニューが動作しないという報告があったので、次リリースからは【動作環境】Windows XPと明記しようと思います。ただ、VISTA / 7 には対応させたいと思ってます。テスト環境の入手の目処が全く立たないのでどうにも出来ないんですね。ぶちゃけちゃうとお金がない。

“壁紙を変更”が動作しない理由はだいたい検討ついてます。現在はSystem.Diagnostics.Process.Start()メソッドで”desk.cpl”を実行させ、終了時にレジストリから変更された壁紙を取得するという実装になってます。この”desk.cpl”がVISTAでは別の何かなんでしょうね、調べてないけど。ここに独自の”壁紙を変更”画面を実装すればVISTAでも上手く動くんじゃないかと、ブランチを作って実装を始めてます。

もうひとつVISTAでの問題があるんですよね。SPDが実行されていないときに壁紙が変更されても次にSPDが起動されたときにそれを検知してSPDにも反映する機能があるのですが、これがVISTAで上手く動かないみたい。この機能は、SPDの終了時に壁紙を記録したレジストリのキーをSPDの設定ファイルに保持して、次回起動したときに、前回記録したキーと現在のキーを比較する実装になってます。この保持するべきレジストリのキーがVISTAだと違うんでしょうね。XP上でも、IEのメニューから壁紙を変更した場合にSPDで検知出来なかったりするし。関連するレジストリのキーを全部洗い出して保持するのも割に合わないし、この機能は廃止しちゃおうかなぁ…。OSや環境に依存せずに壁紙を取得する方法があればいいんだけどな。やっぱレジストリをゴニョゴニョするのは美しくない。

どんな対策をしようとVISTAも7も持ってないので確認のしようが無いんですけどね。まぁ、何時か環境を入手出来たときに対応作業が楽になればいいなってことで。

※追記(12/7)

VISTA/7でも”desk.cpl”のコマンドは変らないようです。

もしかしたらこれ(Visual Basic 中学校 掲示板 Process.WaitForExitが効かない)が原因なのかも。だとしたらどうにもならないよね、OSの仕様みたいだし。やっぱり独自の”壁紙を変更”画面を実装する方向で良かったのかも。

独自の”壁紙を変更”画面の実装がさっき終わりました。WindowsXPの画面のプロパティにはない壁紙の配置方法が選べます。

・中央に表示

・並べて表示

・拡大して表示

・拡大して表示(アスペクト比維持、余白あり)

・拡大して表示(アスペクト比維持、余白なし)

痒いところに手が届いてるでしょ、と自画自賛。

しばらくの間自分で使ってみて問題が無ければUPします。