ホーム 主筆 その他ソフト その他情報 Syuhitu.org English

Windows関連

スクリーンセーバー作成法

半透明ウインドウの性能

bootfont.bin

キャビネット形式

ウインドウスタイルをいじる

Java製ソフトをServiceに登録する

イベントログにメッセージを出力する

コントロールパネルにアイコンを追加する

スクリプトによる拡張1

スクリプトによる拡張2

ガジェットの作成

大容量メモリ

メモリ搭載量の下限に挑む

スパースファイルにする

表示されるアイコンの種類を調べてみた

メモリマップIOとエラー処理

ファイルを作る順番と速度の関係

Cryptography API: Next Generationを使う

Windows 10のアクセントカラー

iSCSIディスクにバックアップを取る

サーバプロセスを分離して実装する

サーバプロセスを分離して実装する - F#

レジストリに大量に書き込む

Solaris関連

OpenGL

Solaris設定

ディレクトリの読み込み

主筆プラグイン開発

マルチスレッドでの開発

door

音を出す

Blade100の正しい虐め方

パッケージの作成

画像入出力

BMPファイル

ICOファイル

ANIファイル

JPEGファイル

減色アルゴリズム

減色アルゴリズムの並列化

その他アルゴリズムなど

自由軸回転

Base64

文字列操作

CPU利用率の取得

正規表現ライブラリ

メタボールを作る

メタボールを作る2

正規表現とNFA・DFA

C言語の構文解析

液晶ディスプレイを解体してみた

iSCSIの理論と実装

単一フォルダにファイルを沢山作る

USB-HUBのカスケード接続

SafeIntの性能

VHDファイルのフォーマット

USBメモリに書き込み続けてみた

ガジェットの作成

2009年11月22日公開

ここで言うガジェット(gadget)とはOSF/Motifで言うところの廉価版ウィジットのことではない。Windows Vistaから搭載されたとかいう子供だましのオモチャの方である。

せっかくPCを新調して比較的新しめの環境を構築したのだから、目新しいことでもやってみようと言うことでガジェットとやらを作ってみることにした。

ガジェットを無効にする方法

デフォルトではガジェットはいつでも利用できるように設定されているが、無効にすることで不要な負荷を軽減し、エクスペリエンスを向上することが可能となる。

というか、ガジェットはセキュリティ的に問題があるとかいう。Windows 8からはサポートされなくなる。Windows 8でサポートされないのは、多分、9割方はセキュリティ上の理由と言うよりマーケティング上の理由だろうが、いずれにせよ、使うようなもんじゃない。

「スタート」メニューで「コントロールパネル」を選択する。

「コントロールパネル」で「プログラムと機能」を選択する。

「プログラムと機能」で「Windows の機能の有効化または無効化」を選択する。

「Windowsの機能」で「Windows ガジェット プラットフォーム」のチェックを外す。

最後に「OK」ボタンを押下することで、ガジェットを無効化することができる。

マニフェストファイルの作成

ここからが本題である。

ガジェットを作るには最低限下記のファイルを用意してやる必要があるらしい。

  • マニフェストファイル
  • アイコン
  • ロゴ
  • HTMLファイル

マニフェストファイルはXMLファイルであり、必ず"gadget.xml"という名前である必要があるらしい。

とりあえず、MSDNに記載されていた例をそのままコピーして、下記のようなファイルを作成してみた。

<?xml version="1.0" encoding="utf-8" ?>
<gadget>
  <name>Test1</name>
  <version>1.0.0.0</version>
  <author name="nabiki_t">
    <info url="http://www.syuhitu.org" />
    <logo src="logo.png" />
  </author>
  <copyright>(C) nabiki_t 2009</copyright>
  <description>サイドバー ガジェットのサンプル。</description>
  <icons>
    <icon height="48" width="48" src="icon.png" />
  </icons>
  <hosts>
    <host name="sidebar">
      <base type="HTML" apiVersion="1.0.0" src="sample.html" />
      <permissions>Full</permissions>
      <platform minPlatformVersion="1.0" />
      <defaultImage src="icon.png" />
    </host>
  </hosts>
</gadget>

これを、UTF-8で"gadget.xml"という名前で保存しておく。

なお俺の知る限りでは、Windows 2000以降から標準のメモ帳でもテキストファイルをUTF-8でエンコードして保存できるようになっているはずである。

アイコンの作成

とりあえずよく分からないが、マニフェストファイルに"icon.png"と"logo.png"という名前を書いたことだし、とりあえずこの二つのファイルを作成する必要があるらしい。

MSDNの記述によれば64×64のサイズで作成するのがいいらしいと言うことで、下記の二つのファイルを作っておいた。

  • icon.png

  • logo.png

PNG形式のファイルは、Windows 7にデフォルトで入っているペイントで作成することができる。

それにしても、ペイントのユーザインタフェースが強烈に劣化しているのはなぜだろうか?

HTMLファイルの作成

ガジェットの本体はデスクトップに表示されたHTMLファイルである。つまり、技術的にはアクティブ デスクトップと大して違いはないのではないかと思われる。

とりあえず、MSDNにあった例をくすねて下記のようなファイルを作成してみた。

<html>
<head>
  <title>Hello World</title>
  <style type="text/css">
    body  {
      margin: 0;
      width:130px;
      height:75px;
      font-family:verdana;
      font-weight:bold;
      font-size:small;
    }
    #gadgetContent {
      margin-top:20px;
      width:130px;
      vertical-align:middle;
      text-align:center;
      overflow:hidden;
    }
  </style>

  <script type="text/jscript" language="jscript">
    function init()
    {
      var oBackground =
          document.getElementById("imgBackground");
      oBackground.src = "url(logo.png)";
    }
  </script>
</head>

<body onload="init()">
  <g:background id="imgBackground">
    <span id="gadgetContent">Hello World!</span>
  </g:background>
</body>
</html>

上記のファイルを"sample.html"という名前で保存する。これは、マニフェストファイルの"base"というタグに記述したファイル名である。

今の時点では正直言ってよく分からないが、とりあえず"g:background"というタグがガジェットを作成する上でポイントとなるらしい。しかし、ここではこれ以上は立ち入らずに、何かを表示してみることを優先して先に進むものとする。

インストール

ここまでの作業で、下記の4つのファイルが作成された。

  • gadget.xml
  • sample.html
  • icon.png
  • logo.png

このファイルを一つのフォルダにまとめて格納し、下記のフォルダのどちらか配置する。

  • %USER_DATA%\Local\Microsoft\Windows Sidebar\Gadgets
  • %SYSTEM_ROOT%\Program Files\Windows Sidebar\Gadgets

なお、格納するフォルダ名は基本的には何でもいいらしいが、とりあえず".gadget"という文字列で終了するようにするべきであるらしい。

とりあえず俺は、"c:\Program Files\Windows Sidebar\Gadgets\Test1.gadget"といフォルダを作成し、その中に上記4つのファイルを格納しておいた。

ここまでで一度、作成したガジェットを表示してみる。

デスクトップで右クリックし、メニューから「ガジェット」を選択する。

ガジェットギャラリーが表示される。

一応、作成したアイコンとロゴが表示されているのが分かる。

上記の「ガジェットギャラリー」で"Test1"をダブルクリックすると、デスクトップに情けないガジェットが表示される。

CPUメーターやノートン先生と一緒に並べてみると、情けなさが一層引き立つ。

パッケージ

作成したガジェットを自分で眺めて満足しているだけなら、ここまでで作業を終わってしまっても問題ない。だが、できれば作ったものは配布できるようにしておきたいものだ。

ガジェットは、関連するファイルをzipで固めて拡張子を".gadget"にすればそれでいいらしい。

とりあえず、zipで圧縮する。

作成されたzipファイルの名前を"Test1.gadget"に変更する。

拡張子を変えようとすれば、当然Windowsが苦情をいってくるが、こんなものは無視する。

拡張子の変え方が分からないやつは百遍死んで出直してくるべし。

拡張子を変更すると、なにやらガジェットっぽいアイコンに変化する。

先ほど作った"c:\Program Files\Windows Sidebar\Gadgets\Test1.gadget"というフォルダを削除するか、あるいは別のところに移動してから、作成したzipファイルをダブルクリックしてみる。

ずいぶんひどい言われようだ。全力で実行するなと警告してきやがる。だが、なにぶんこれは俺が作成したファイルだ。信用するも何もない。当然「インストールする」を押下する。

そうするとデスクトップの右上に、例の情けないガジェットが表示される。

なお、この方法でインストールした場合は、ユーザ別のフォルダに(すなわち"%USER_DATA%\Local\Microsoft\Windows Sidebar\Gadgets"の方)にインストールされるらしい。一応確認してみる。

正確な場所は分かりにくいが、下記のフォルダである。

  • C:\Users\Administrator\AppData\Local\Microsoft\Windows Sidebar\Gadgets

当然、Administratorの部分はユーザごとに変化する。

なお、ここではzipファイルで固める方法を記載したが、要は上記のフォルダに"名前.gadget"というフォルダを作成して、必要なファイルをその中に入れればいいらしいから、必ずしもzipで圧縮しなくてもいいらしい。たとえばMSDNにはWindows Installerによる.msiファイルでも問題ないと記載されている。

下記にこのページで作成したガジェットを公開しておく。まぁ、何に役にも立たないだろうが。

 


連絡先 - サイトマップ - 更新履歴
Copyright (C)  2000 - 2016 nabiki_t All Rights Reserved.