Windows Vista用ガジェットの作成

Windows Vistaには、ガジェット(gadget)という小さなアプレットを実行する機能が追加されています。Windows Vistaを標準状態でインストールすると、デスクトップの右端(サイドバー)に張り付いているアナログ時計やスライドショーがありますが、あれがガジェットです。ガジェットを一言で言えばデスクトップに貼り付けられるHTAといった感じでしょうかね。
HTA同様Webページをもとにしているので、IE7のDHTML(JavaScript、スタイルシート)機能やActiveX(COM)を利用してかなり高い機能を実現できるようです。デスクトップにWebページを張るしかけは、以前(IE4のアクティブデスクトップなど)からありましたが、Windows Vistaのガジェットはローカルのリソースを活用する小さなプログラムとしての側面も強く、関連ファイルを一つのディレクトリや圧縮ファイルにまとめられるので配布もしやすそうですね。

gadget.xmlを追加してHTMLをガジェットに

で、このガジェットですが、作るのは簡単です。表示したいWeb(HTMLファイル)とHTMLドキュメントに埋め込む画像ファイルやFLASHなどの関連素材をディレクトリにまとめてガジェットの設定を行うgadget.xmlというXMLファイルを書くだけ。「.gadget拡張子のディレクトリ名」というちょっと変わったディレクトリにgadget.xmlとともにWebページを配置したら、その.gadgetディレクトリをユーザーのガジェットディレクトリ(C:/Users/ユーザー名/AppData/Local/Microsoft/Windows Sidebar/Gadgetsなど)に置きます。これで、サイドバーで右クリックしてガジェットを追加できるようになるわけです。ただし、このガジェットディレクトリは隠しディレクトリになっているので、エクスプローラの設定で隠しファイルを表示するようにしておいた方がよいでしょう。

では、実際にWindows Vistaのサイドバーに自作のガジェットを置いてみましょうか。まず、ガジェットディレクトリに適当な.gadgetディレクトリを作成し、そこに以下のようなHTMLとgadget.xmlを配置してください(文字コードはUTF-8)。

test.html

<html>
<body style="width:64px;height:64px;">

<p>test</p>

</body>
</html>

gadget.xml

<?xml version="1.0" encoding="utf-8" ?>
<gadget>
	<name>Test</name>
	<version>0.0.1</version>
	<hosts>
		<host name="sidebar">
			<base type="HTML" apiVersion="1.0.0" src="test.html" />
			<permissions>Full</permissions>
			<platform minPlatformVersion="1.0" />
		</host>
	</hosts>
</gadget>

test.htmlとgadget.xmlを適当なディレクトリ(test.gadgetなど)に保存したら、Windows Vistaのデスクトップにあるサイドバーで右クリック、コンテキストメニューから「ガジェットの追加」を選びます。すると、ガジェットの一覧が出てくるのでgadget.xmlで指定した名前(name要素、Test)を探し、追加してみましょう。

追加すると、サイドバーにtestという文字が表示されたガジェットのウインドウが出てきますね。これで、自作ガジェットの出来上がりです。あとは、JavaScrit(JScript)で「動き」をつけたり、HTAのようにActiveXでローカルファイルを読み書きしたりビデオを再生してみたり、XML取得機能を利用したAJaxでちょっとした情報提供/送信機能を追加したりと色々「おもしろい」ガジェット作成に挑戦してみましょう。

サイドバーに配置するのであまり大きなウインドウは作れませんが、背景をアルファ(透明度付)画像で設定できる、独自の設定ウインドウを持つことができる、といった特長もあるので、うまく特長を活かしたいですね。Windows Vista独自の機能で実行環境は限られるものの、HTA版を派生させるのも簡単なのでこれを機にちょっとした「Webベースアプリケーション」作成に取り組んでみてはいかがでしょうか。


Windowsプログラミング実験室 > プログラミング資料庫