次の方法で共有


PDC 2008

Windows 7 ガジェット プラットフォーム

更新日: 2009 年 4 月 28 日


ダウンロード

PDC08_Windows_7_GadgetPlatform_JPN.doc (Word 形式、930 KB)


目次:

  1. はじめに
  2. サイドバーが新しいガジェット プラットフォームに道を譲るときが来た
    1. ガジェットの管理
    2. ガジェットのセキュリティ
    3. ガジェットのUI
  3. 詳細情報

Karl Bridge
Microsoft Corporation
2008 年 9 月

対象:

Windows® 7

要約:

Windows Vista のサイドバーから Windows 7 のガジェット プラットフォームへの移行に関して Windows ガジェット開発者が知っておく必要がある事柄を説明します。

法的通知:

このドキュメントは暫定版であり、このソフトウェアの最終的な製品版の発売時に実質的に変更されることがあります。
このドキュメントに記載されている情報は、このドキュメントの発行時点におけるマイクロソフトの見解を反映したものです。変化する市場状況に対応する必要があるため、このドキュメントは、記載された内容の実現に関するマイクロソフトの確約とはみなされないものとします。また、発行以降に発表される情報の正確性に関して、マイクロソフトはいかなる保証もいたしません。
このホワイト ペーパーに記載された内容は情報の提供のみを目的としており、明示、黙示または法律の規定にかかわらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。
お客様ご自身の責任において、 適用されるすべての著作権関連法規に従ったご使用を願います。このドキュメントのいかなる部分も、米国 Microsoft Corporation の書面による許諾を受けることなく、その目的を問わず、どのような形態であっても、複製または譲渡することは禁じられています。ここでいう形態とは、複写や記録など、電子的な、または物理的なすべての手段を含みます。ただしこれは、著作権法上のお客様の権利を制限するものではありません。
マイクロソフトは、このドキュメントに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他の無体財産権を有する場合があります。別途マイクロソフトのライセンス契約上に明示の規定のない限り、このドキュメントはこれらの特許、商標、著作権、またはその他の無体財産権をお客様に許諾するものではありません。
© 2008 Microsoft Corporation. All rights reserved.
Microsoft、MS-DOS、Windows、Windows NT、Windows Server、Windows Vista、Active Directory、ActiveSync、ActiveX、Direct3D、DirectDraw、DirectInput、DirectMusic、DirectPlay、DirectShow、DirectSound、DirectX、Expression、FrontPage、HighMAT、Internet Explorer、JScript、Microsoft Press、MSN、Outlook、PowerPoint、SideShow、Silverlight、Visual Basic、Visual C++、Visual InterDev、Visual J++、Visual Studio、WebTV、Windows Media、Win32、Win32s、および Zune は米国 Microsoft Corporation の米国またはその他の国における登録商標または商標です。
記載されている会社名、製品名には、各社の商標のものもあります。


1. はじめに

このドキュメントでは、Windows® 7 のガジェット プラットフォームを紹介し、これが Windows Vista® のサイドバーと比べてどのように進化しているかについて述べ、サイドバーとの違い、この新しいプラットフォームに移行する際にガジェット開発者が知っておく必要がある潜在的な問題について説明します。

Windows Vista では、サイドバーと呼ばれる新しいアプリケーション プラットフォームが導入されました。サイドバー用に開発されたアプリケーションは "ガジェット" と呼ばれました。これは、限られた機能、および他のアプリケーション、コントロール、または Web サイトやサービスから得られた情報を提供することを目的とした、XML、HTML、CSS、およびスクリプトをベースとしたミニアプリケーションです。サイドバーは、開発プラットフォームであるだけでなく、プレゼンテーション プラットフォーム (ガジェットのホストやコンテナーとして機能する、デスクトップ上の半透明のペイン) でもありました (ただし、個々のガジェットはサイドバーからデスクトップ上にドラッグ アンド ドロップすることができました)。

Windows 7 では、サイドバーを一連のガジェットの視覚的なホストとする概念は不要であると考えられました。Windows 7 のガジェットでは、Windows デスクトップとのより緊密な統合、より統合されたユーザー インターフェイス (UI) によって見た目をよりすっきりさせること、および、より強力なセキュリティが確保されたプラットフォームを実現することを目標としています。もともとガジェットは、サイドバーによって物理的に制約されているわけではなかったので、サイドバーを離れて、より包括的なガジェット プラットフォームへ移行されたのは当然のことでした。

開発者にとって、エンド ユーザーによってプラットフォームが採用されることは非常に重要です。ガジェット プラットフォームが提供する明快さ、セキュリティ、および使いやすさは、プラットフォームの普及に大いに役立ちます。

ページのトップへ


2. サイドバーが新しいガジェット プラットフォームに道を譲るときが来た

Windows Vista® のサイドバーから Windows® 7 のガジェット プラットフォームへの進化は抜本的なものではありませんが、この進化によって、いくつかの重要な強化点がガジェット開発者にもたらされます。

a. ガジェットの管理

ガジェットのサポートに関する強化点の 1 つ目であり最も重要なものは、ガジェットの管理に関する変更です。サイドバーをコンテナーとする概念はなくなり、Windows デスクトップがコンテナーになります (ただし、すべてのガジェットが sidebar.exe プロセスによって所有されるという点に変わりはありません)。この変更により、ガジェットの管理が簡単になるだけでなく、デスクトップの UI 全体が整理および統合され、専用のサイドバー設定やヘルプ トピックは不要になります。代わりに、デスクトップ コンテキスト メニューの "ガジェット" という 1 つのコマンドからガジェット ピッカー にアクセスすることができ、より簡単にガジェットを選択および使用できるようになります。

図 1 Windows Vista のサイドバーのコンテキスト メニュー (左) と Windows 7 のデスクトップ コンテキスト メニュー (右) の比較: ガジェットが Windows デスクトップの一部になった

図 1 Windows Vista のサイドバーのコンテキスト メニュー (左) と Windows 7 のデスクトップ コンテキスト メニュー (右) の比較: ガジェットが Windows デスクトップの一部になった

sidebar.exe プロセスの開始と停止によってすべてのガジェットの表示/非表示を切り替えるための新しいデスクトップ オプションが用意されています。このオプションを使用すると、プロセスが再開されたときに各ガジェットの画面上での位置や設定が復元されます。このオプションにより、ラップトップ コンピューターに省電力というメリットがもたらされ、また、コンピューターをプレゼンテーションに使用するユーザーが抱えるプライバシーについての懸念に対処することができます。

図 2 Windows 7 のデスクトップ コンテキスト メニュー: [デスクトップ ガジェットの表示]

図 2 Windows 7 のデスクトップ コンテキスト メニュー: [デスクトップ ガジェットの表示]

Windows 7 での、パフォーマンスに関するもう 1 つの強化点は、sidebar.exe プロセスの管理に関するものです。Windows Vista のサイドバーでは、sidebar.exe プロセスのインスタンスが複数開始されますが、Windows 7 では、開始されるインスタンスは 1 つです。しかも、この 1 つのプロセスは、デスクトップにガジェットが追加されたり、ガジェット ピッカーが起動されたり、デスクトップ上の既存のガジェットで新しいユーザー セッションが開始されたりするまでは、開始されません。(ガジェットがデスクトップに追加されることなく) ガジェット ピッカーが閉じられたり、デスクトップ上から最後のガジェットが削除されたりすると、sidebar.exe プロセスは自動的に停止します。

ページのトップへ

b. ガジェットのセキュリティ

ガジェット プラットフォームのセキュリティ モデルは Windows Vista のサイドバーのセキュリティ モデルから大幅には変化していません。次の表に、各種ガジェットがインストールされる場所を示します。

ガジェットの種類 場所 アクセス許可
ユーザー ガジェット %localappdata%\Microsoft\Windows Sidebar\Gadgets すべてのユーザーがこの場所への書き込みを行うことができます。
共有ガジェット %programfiles%\Windows Sidebar\Shared Gadgets Administrators グループのメンバーのみが、この場所への書き込みを行うことができます。
Windows ガジェット %programfiles%\Windows Sidebar\Gadgets Administrators グループの全メンバーがこの場所への書き込みを行うことができますが、TrustedInstaller によってこの場所に書き込まれたガジェットのみが Windows ガジェットとして認識されます。その他のガジェットはすべて、ユーザー ガジェットと見なされます。

ページのトップへ

c. ガジェットの UI

UI についても、サイドバーのガジェットからガジェット プラットフォームへの移行で加えられた変更は、画期的な変化というよりもむしろ進化です。しかし、System.Gadget.onDock イベントと System.Gadget.onUndock イベントにいくつかの変更が加えられています。

System.Gadget.onDock イベントと System.Gadget.onUndock イベント

Windows Vista のサイドバーのガジェットでは、イベント ハンドラーに onDock イベントと onUndock イベントを関連付けると、次の図に示すように、ガジェットがサイドバーにドッキングされたりサイドバーからドッキング解除されたりする際に、自動的に視覚的な切り替え効果が適用されていました。

図 3 Windows Vista サイドバーのガジェット: ドッキング イベント用およびドッキング解除イベント用のイベント ハンドラー内で定義されている視覚的な切り替えの例 (左がドッキングしている状態で右がドッキング解除されている状態)

図 3 Windows Vista サイドバーのガジェット: ドッキング イベント用およびドッキング解除イベント用のイベント ハンドラー内で定義されている視覚的な切り替えの例 (左がドッキングしている状態で右がドッキング解除されている状態)

Windows 7 のガジェット プラットフォームにはサイドバーが関連付けられていないので、ドッキング イベントやドッキング解除イベントはありません。ですが、最大限の下位互換性が維持されるように、同じコードを使用して同じ視覚効果を実現できるようになっています。ドッキング イベント用またはドッキング解除イベント用のイベント ハンドラーが定義されている場合、ガジェットをポイントすると (ガジェットがフォーカスを受け取ると)、追加のアイコン ([大きいサイズ] または [小さいサイズ]) が表示されます。このアイコンをクリックすると、ドッキング イベント ([小さいサイズ] をクリックした場合) またはドッキング解除イベント ([大きいサイズ] をクリックした場合) が発生し、次の図に示すように、視覚的な切り替えが行われます。

図 4 ガジェット プラットフォームのガジェット: ドッキング イベント用およびドッキング解除イベント用のイベント ハンドラー内で定義されている視覚的な切り替えの例 (カレンダー ガジェットは左ではドッキングされており (閉じており) 右ではドッキング解除されている (開いている))

図 4 ガジェット プラットフォームのガジェット: ドッキング イベント用およびドッキング解除イベント用のイベント ハンドラー内で定義されている視覚的な切り替えの例 (カレンダー ガジェットは左ではドッキングされており (閉じており) 右ではドッキング解除されている (開いている))

次のコード例は、ドッキング イベント用およびドッキング解除イベント用のイベント ハンドラーを関連付けるために、 Windows Vista のサイドバーと Windows 7 のガジェット プラットフォームの両方に対して同じコードがどのように機能するかを示しています。

// ガジェットの幅と高さを定義します。
var gadgetWidth = 130;
var gadgetHeight = 108;

// ドッキング時またはドッキング解除時にガジェットのサイズをどの程度変更するかを定義します。 var scaleDocked = 1; var scaleUndocked = 2;

// ドッキング イベント用およびドッキング解除イベント用のイベント ハンドラーを宣言します。 System.Gadget.onDock = CheckDockState; System.Gadget.onUndock = CheckDockState;

// -------------------------------------------------------------------- // ガジェットのドッキング状態を確認し、ガジェットのスタイルを設定します。 // imgBackground は、g:background 要素の // "id" 属性の値です。 // -------------------------------------------------------------------- function CheckDockState() { var oBackground = document.getElementById("imgBackground");

var oBody = document.body.style;
if (System.Gadget.docked)
{
    oBody.width = gadgetWidth*scaleDocked;
    oBody.height = gadgetHeight*scaleDocked;
    
    oBackground.src = "url(../images/bg_docked.png)";
    
    txtDocked.className = 'gadgetDocked';
    txtDocked.innerText = 'Docked';
}
else
{
    oBody.width = gadgetWidth*scaleUndocked;
    oBody.height = gadgetHeight*scaleUndocked;  
    
    oBackground.src = "url(../images/bg_undocked.png)";
    
    txtDocked.className = 'gadgetUndocked';
    txtDocked.innerText = 'Undocked';
}

}

ページのトップへ


3. 詳細情報

  • ガジェット プラットフォームの詳細については、Windows 7 および .NET Framework 3.5 Service Pack 1 用 Windows® ソフトウェア開発キット (SDK) のプレベータ版を参照してください (PDC 参加者には、このプレベータ版を配布しました)。
  • Microsoft ダウンロード センターからガジェットのサンプル (英語) をダウンロードすることができます。

Web アドレスは変更される可能性があるため、ここに記載されている Web サイトに接続できない場合があります。

ページのトップへ