PDC 2008

Windows 7 タスク バーの拡張機能

更新日: 2009 年 4 月 28 日


ダウンロード

PDC08_Windows_7_Taskbar_Enhancements_JPN.doc (Word 形式、620 KB)


目次:

  1. 概要
  2. 統合された起動と切り替え
  3. 転送先一覧
    1. 転送先
    2. タスク
    3. 転送先一覧をカスタマイズする
  1. 縮小表示ツール バー
  2. アイコン オーバーレイ
  3. 進行状況バー
  4. デスクバンド
  5. 通知領域
  6. 縮小表示
  7. プログラムによるガジェットの配置



Microsoft Corporation
2008 年 10 月

対象:

Windows® 7

要約:

このドキュメントでは、新しいタスク バーの機能について説明します。新しいタスク バーの機能には、起動および切り替えの統合、タスク バー ボタンの拡張機能 (ドキュメントおよびアプリケーション固有のタスクへのシングル クリック アクセスなど)、トランスポート コントロールおよび状態通知、タブ表示されているアプリケーションの個々のタブに基づいた縮小表示と対象の切り替え、およびドラッグ アンド ドロップ操作によるタスク バー ボタンの並べ替え機能などがあります。


1. 概要

Windows® 7 オペレーティング システムのタスク バーは、ユーザーが目的の場所にできるだけ早く効率的に移動できるようにするという指針に基づいて、大幅に拡張されています。これを受けて、ユーザーが操作する必要があるアプリケーション ウィンドウ、ファイル、およびコマンドを 1 つのタスク バー ボタンに集約し、以前は分散していた情報ソースやコントロールが統合されるようになりました。ユーザーは、一般的なタスク、最近使ったファイルや頻繁に使うファイル、通知、進行状況の通知、および個々のドキュメントやタブの縮小表示を、1 つの場所で確認できるようになります。


2. 統合された起動と切り替え

Windows 7 タスク バーでは、クイック起動が個別のツール バーではなくなりました。これまでクイック起動ツール バーに一般的に含まれていたプログラムを起動するショートカット (起動のショートカット) は、タスク バーに固定されるようになり、現在実行中のアプリケーションのボタンと区別されずに混在した状態で表示されるようになります。この状況を慣れ親しみがある用語を使用して説明しましょう。固定された起動のショートカットからユーザーがアプリケーションを起動すると、アプリケーションを実行している間は、アイコンがアプリケーションのタスク バー ボタンに変わります。ユーザーがアプリケーションを終了すると、ボタンはアイコンに戻ります。ただし、起動のショートカットと実行中のアプリケーションのボタンは、単に形式の異なる Windows 7 タスク バー ボタンです。

Windows 7 タスク バー ボタン

いくつかのアプリケーションについては、新しくインストールした際に、既定でタスク バーに起動のショートカットが固定されます。それ以外のアプリケーションについては、ユーザーがタスク バーに起動のショートカットを固定することはできますが、アプリケーションがプログラムで固定することはできません。

クイック起動ツール バーの "デスクトップの表示" 機能は、タスク バーの右端に表示されるようになりました。この領域をポイントすると、すべてのアクティブなウィンドウが透明になり、デスクトップが表示されます。また、この領域をクリックすると、すべてのウィンドウが最小化されデスクトップが表示される、という慣れ親しみのある操作が実行されます。

アプリケーションの実行中は、そのアプリケーションのタスク バー ボタンから、以下の全機能にアクセスできます。各機能については、後で詳しく説明します。

  • タスク (転送先一覧。これはアプリケーションの実行中でなくても表示されます)。
  • 最近アクセスしたファイルと頻繁にアクセスするファイル (転送先一覧)。
  • ウィンドウの切り替え (縮小表示)。
  • 基本的なアプリケーションの制御 (縮小表示ツール バー)。
  • 状態 (オーバーレイと進行状況バー)。

タスク バー ボタンには、起動ツール、1 つのアプリケーション ウィンドウ、またはグループを表示できます。各グループには、Application User Model ID (アプリケーション ユーザー モデル ID、AppID) と呼ばれる識別子が割り当てられます。アプリケーション定義の AppID では、標準のタスク バーのグループ化に優先するよう指定できます。これにより、ウィンドウが同じグループに属しているように見えない場合でも、ウィンドウを同じグループのメンバーにすることができます。グループのタスク バー ボタンをポイントすると、縮小表示のポップアップによって、グループの各メンバーのプレビューが個別に表示されます。グループ化自体は、これまでと同様にオプションです。

また、良いお知らせがあります。多くのユーザーからの要求にお応えして、タスク バー ボタンをドラッグ アンド ドロップ操作によって並べ替えられるようになりました。

注: クイック起動フォルダー (FOLDERID_QuickLaunch) は、下位互換性を維持するため、依然として使用することができます。ただし、新しいアプリケーションでは、インストール中に、アイコンをクイック起動ツール バーに追加することを要求しないようにする必要があります。

ページのトップへ


3. 転送先一覧

一般的に、ユーザーはドキュメントにアクセスしたり、プログラムでタスクを実行したりする目的でプログラムを起動します。ゲーム プログラムのユーザーも、ゲームを初めからやり直すのではなく、保存したゲームにアクセスしたり、特定のキャラクターとしてゲームを起動したりすることが必要な場合があります。ユーザーが最終的にアクセスする必要があるものにより効率的に到達できるようにするため、アプリケーションに関連付けられている項目や一般的なタスクの一覧が、そのアプリケーションのタスク バー ボタン (と [スタート] メニューのエントリ) に配置されています。これが、アプリケーションの転送先一覧です。転送先一覧は、タスク バー ボタンが起動のショートカットの状態 (アプリケーションが実行されていない状態) でも、タスク バー ボタンに複数のウィンドウが含まれている場合でも、使用できます。タスク バーボタンを右クリックすると、アプリケーションの転送先一覧が表示されます。

アプリケーションの転送先一覧

注: この "転送先一覧" という呼称は一時的なものです。Windows 7 がリリースされるころには、おそらく別の名前で呼ばれています。ただし、転送先一覧に関連するすべての API は、現時点の名前が引き続き使用される可能性が高いです。

既定では、標準的な転送先一覧には、"最近使ったもの" および "固定" という 2 つのカテゴリが表示されます。ただし、コンテンツがあるカテゴリのみが UI として表示されます。また、(追加インスタンスを起動するための) アプリケーションを起動するアイコン、タスク バーにアプリケーションを固定したり固定表示を解除したりするためのオプション、および開いているウィンドウを "閉じる" コマンドも、常に表示されています。

a. 転送先

"最近使ったもの" カテゴリと "よく使うもの" カテゴリには、転送先が含まれているとみなされます。

転送先は、編集、参照、表示などの操作対象になるもの (通常は、ファイル、ドキュメント、または URL) です。転送先は、"操作" というよりも "物" として考えてください。
一般的に、転送先は IShellItem によって表される Shell 名前空間内の項目です。たとえば、ドキュメント、URL、またはフォルダーなどです。転送先一覧に含まれるこれらのカテゴリは、[スタート] メニューに表示される最近使ったドキュメントの一覧 (現在は既定で無効になっています) と頻繁に使用するアプリケーションの一覧に似ています。ただし、転送先一覧はアプリケーション固有なので、より限定されユーザーにとって使用しやすいものになっています。転送先一覧には、SHAddToRecentDocs 関数の呼び出しによって算出された結果が表示されます。Windows エクスプローラーからファイルを開いたり、一般的なファイル ダイアログ ボックスを使用してファイルを開く、保存、作成したりする場合には、SHAddToRecentDocs 関数が自動的に呼び出されます。これにより、多くのアプリケーションでは、何も処理を行うことなく、最近使用された項目が転送先一覧に表示されます。

転送先を起動することは、[プログラムから開く] コマンドを使用して項目を起動することと非常によく似ています。その後、読み込まれて起動する準備が整っている転送先を使用して、アプリケーションが起動します。転送先一覧の項目は、一覧からドラッグして、電子メールなどの転送先にドロップすることもできます。このような項目を転送先一覧で一元管理することによって、ユーザーは目的の場所によりすばやく移動することができます。これが、転送先一覧の目的です。

ユーザーは、転送先一覧の [最近使ったもの] カテゴリ (または、[よく使うもの] カテゴリ、あるいは後で説明するカスタム カテゴリ) に表示された項目を、すぐにアクセスできるように、常に転送先一覧に表示する必要のある場合があります。このような場合、ユーザーは、その項目を一覧に固定することができます。このような項目は、"固定" カテゴリに追加されます。ユーザーが転送先で作業しているときに、転送先をいつでも簡単に使えるようにする必要がある場合には、転送先をアプリケーションの転送先一覧に固定します。この作業が完了して、他のプロジェクトの作業に移行したら、ユーザーは項目の固定を解除できます。このようにしてユーザーが一覧を制御することにより、一覧は整頓され適切な状態を維持できます。

転送先一覧は、アプリケーション固有の [スタート] メニューのようなものとして考えることもできます。転送先一覧は、複雑なショートカット メニューではありません。実際に、転送先一覧の各項目を右クリックすることで、それぞれのショートカット メニューが表示されます。

API:
IApplicationDestinations::RemoveDestination
IApplicationDestinations::RemoveAllDestinations
IApplicationDocumentLists::GetList
SHAddtoRecentDocs

ページのトップへ

b. タスク

転送先一覧に含まれるもう 1 つの組み込みカテゴリは、"タスク" です。転送先が "物" なら、タスクは "操作" とみなすことができます。また、この場合はアプリケーション固有の操作ということになります。また、転送先は名詞で、タスクは動詞だと言うこともできます。一般的に、タスクは、コマンド ライン引数を伴う IShellLink の項目です (各引数では、アプリケーションによってトリガーされる特定の機能を示します)。ここでも、アプリケーションに関連するできるだけ多くの情報を実用的な状態で一元管理することで、ユーザーがさまざまな場所から情報を収集する必要性を軽減することを目的としています。

アプリケーションでは、プログラムの機能とユーザーがプログラムを使用して実行する可能性が最も高い主要操作の両方に基づいて、タスクを定義します。タスクを実行するためにアプリケーションを起動する必要がないように、タスクは状況に依存しないものにする必要があります。また、タスクは、一般ユーザーがアプリケーションで実行する操作の中で、統計上最も一般的な操作でもあります。たとえば、メール プログラムでは電子メールの作成や予定表の表示、ワード プロセッサでは新しい文書の作成、特定のモードでのアプリケーションの起動、アプリケーションのサブコマンドのを実行することなどです。一般ユーザーが必要としない高度な機能や、登録などの 1 回限りの操作によって、メニューが見えづらくなることがないようにしてください。また、販促目的に (アップグレードや特典など) タスクを使用しないようにしてください。

タスク リストは静的なものにすることを強くお勧めします。アプリケーションの状態や状況に関係なく、タスク リストは同じ状態にすることをお勧めします。そうは言っても、どうしても必要な場合は、リストを動的に変更することも可能です。ただし、ユーザーは、転送先一覧のタスク カテゴリが変更されることを予測していないので、ユーザーが混乱する可能性があることを考慮する必要があります。

API:
ICustomDestinationList::AddUserTasks

ページのトップへ

c. 転送先一覧をカスタマイズする

転送先一覧は、アプリケーションによって完全にカスタマイズすることができます。アプリケーションでは、独自のカテゴリを定義して転送一覧に追加したり、[最近使ったもの] カテゴリや [よく使うもの] カテゴリを置き換える形で追加することができます。また、アプリケーションのアーキテクチャや使用目的に基づいて、独自の転送先とタスクを指定することもできます。

転送先一覧のカスタマイズ

アプリケーションでカスタム カテゴリを使用する場合、そのアプリケーションでカスタム カテゴリを設定するための処理を実行します。カスタム カテゴリのコンテンツも、ユーザー固有のもので、ユーザーの履歴と操作に基づいたものにする必要があります。ただし、カスタム カテゴリにより、アプリケーションでは、アプリケーションのオプションに基づいて追跡する項目と無視する項目を判断することができます。たとえば、オーディオ プログラムでは、最近再生したアルバムのみを含めて、最近再生した個々の曲は無視するようにすることができます。

ユーザーが一覧から項目を削除した場合には (ユーザーはこの操作を常に実行できます)、アプリケーションでは、その変更に従う必要があります。また、アプリケーションは一覧内の項目が有効であることや、削除された項目については、そのことを通知するエラーを表示する必要があります。一覧に含まれる個々の項目やコンテンツ全体は、プログラムによって削除できます。

転送先一覧に含めることができる項目の最大数は、さまざまな要因 (ディスプレイの解像度、フォント サイズなど) に基づいて、システムによって決定されます。全カテゴリのすべての項目を表示するのに必要な領域がない場合、項目は最初のものから切り詰められます。カテゴリの優先順位は、次のようになります (これは、カテゴリが転送先一覧に表示される順序でもあります)。

  1. 固定されている項目
  2. タスク
  3. カスタム カテゴリ
  4. "最近使ったもの" カテゴリと "よく使うもの" カテゴリの項目

API:
ICustomDestinationList
IApplicationDestinations
IApplicationDocumentLists

ページのトップへ


4. 縮小表示ツール バー

ユーザーがアプリケーションのウィンドウを元のサイズに戻したりアクティブ化したりすることなく、特定のウィンドウの主要なコマンドにアクセスできるようにするために、アクティブなツール バー コントロールをウィンドウの縮小表示プレビューに埋め込むことができます。たとえば、Windows Media® Player の縮小表示ツール バーでは、再生、一時停止、ミュート、停止などの、標準的なメディアのトランスポート コントロールが提供されます。このツール バーは、縮小表示のすぐ下に表示され、ツール バーによって縮小表示プレビューの一部が隠れることはありません。

縮小表示ツール バー

具体的に見てみると、これは慣れ親しみのある標準的なコモン コントロールのツール バーで、最大で 7 個のボタンが配置されます。各ボタンの ID、イメージ、ヒント、および状態は構造体で定義され、その後タスク バーに渡されます。アプリケーションでは、縮小表示ツール バーの現在の状態に対してボタンの追加、変更、および削除を行えます。

API:
ITaskbarList3::ThumbBarAddButtons
ITaskbarList3::ThumbBarSetImageList
ITaskbarList3::ThumbBarUpdateButtons
THUMBBUTTON 構造体

縮小表示プレビューを表示する領域は限られており、さまざまな数の縮小表示を表示する必要があるため、アプリケーションで一定のツール バーのサイズを使用できることは保証されていません。領域が少ない場合は、ツール バーのボタンは右から左の順に切り詰められます。そのため、独自のツール バーをデザインする際には、ボタンに関連付けられているコマンドの優先順位を入念に検討し、最も重要なボタンが最初に表示され、それほど重要ではないボタンが切り詰められるようにする必要があります。

注: アプリケーションでウィンドウが表示されると、システムによってアプリケーションのタスク バー ボタンが作成されます。ボタンが配置されると、タスク バーからウィンドウに TaskbarButtonCreated メッセージが送信されます。この値は、RegisterWindowMessage(TEXT("TaskbarButtonCreated")) 関数を呼び出すことによって計算されます。アプリケーションでは、ITaskbarList3 メソッドを呼び出す前に、そのメッセージを受け取る必要があります。

ページのトップへ


5. アイコン オーバーレイ

ボタン上に小さなオーバーレイ (96 dpi の場合は 16 x 16 ピクセル) を表示することにより、アプリケーションでは、タスク バー ボタンを通じてなんらかの通知や状態をユーザーに伝えることができます。このようなオーバーレイは、ショートカットやセキュリティに関する通知に使用されている既存のオーバーレイと同じようなもので、ボタンの右下の隅に表示されます。アイコン オーバーレイを表示するには、タスク バーが既定の大きいアイコン モードになっている必要があります。

小さなオーバーレイ

アイコン オーバーレイは、状況に応じた状態通知として機能し、通知領域に状態アイコンを個別に表示する必要性をなくして、情報をユーザーに伝えることを目的としています。たとえば、現在、通知領域に表示される Microsoft® Office Outlook の新着メールの通知は、タスク バー ボタンのオーバーレイとして表示されるようになります。しかし、これについても、開発サイクルの間に、アプリケーションに最適な方法を決定する必要があります。アイコン オーバーレイは、重要かつ長期にわたる状態や通知 (ネットワークの状態、メッセンジャーの状態、新着メールなど) を提供することを目的としています。絶えず変化するオーバーレイやアニメーションを使用することにより、タスク バー ボタンが繁華街のネオンのようになり、そのことによってユーザーが不快にならないようにしてください。

オーバーレイは、個別のウィンドウの縮小表示ではなくタスク バー ボタン上に重ねて表示されるので、これはウィンドウ単位の機能ではなくグループ単位の機能になります。アイコン オーバーレイの要求は、タスク バーのグループ内の個々のウィンドウから受け取ることができますが、キューに登録されることはありません。最後に受け取ったオーバーレイの要求が、オーバーレイとして表示されます。

API:
ITaskbarList3::SetOverlayIcon

ページのトップへ


6. 進行状況バー

タスク バー ボタンは進行状況バーとして使用することもできます。これにより、ユーザーがウィンドウを切り替えなくても、ウィンドウの進行状況に関する情報を提供できます。ユーザーは、あるアプリケーションで作業を行いながら、他のウィンドウで行われている 1 つまたはそれ以上の操作の進行状況をひとめで確認することができます。この機能は、ファイルのコピー、ダウンロード、インストール、メディアへの書き込みなど、しばらく時間がかかる操作の追跡に使用できます。

この機能は、Web ページの読み込み、ドキュメントの印刷など、一般的に短時間で済む操作で使用することを目的としたものではありません。このような種類の操作の進行状況は、引き続きウィンドウのステータス バーに表示されるようにする必要があります。

タスク バー ボタンの進行状況バーは、慣れ親しみのある進行状況バー コントロールとほとんど同じです。進行状況バーでは、操作が完了した割合に基づいて明確な進行状況を表示するか、またはマーキー スタイルで漠然とした進行状況を表示して、残り時間を予測することなく、操作が進行中であることを示せます。また、操作が一時停止していることや、操作でエラーが発生し、ユーザーによる操作が必要であることも示すことができます。

いくつかのウィンドウが 1 つのタスク バー ボタンに関連付けられていて、そのうちの複数のウィンドウで進行状況が伝えられている場合、タスク バー ボタンには漠然とした状態の進行状況が表示されます。グループ内の 1 つのウィンドウのみが進行状況を伝えている場合は、明確な進行状況が表示されます。

API:
ITaskbarList3::SetProgressState
ITaskbarList3::SetProgressValue

ページのトップへ


7. デスクバンド

以前のバージョンの Windows では、縮小表示ツール バーのような機能がデスクバンド (タスク バーでホストされるツール バー) によって実現されていました。たとえば、Windows Media® Player は、標準的なボタンではなく一連のトランスポート コントロールとして、タスク バーに最小化することができました。Windows 7 では、依然としてデスクバンドを実装することが可能で、縮小表示ツール バーはデスクバンドに完全に取って代わることを目的としたものではありません。すべてのアプリケーションが縮小表示ツール バーに適しているというわけではなく、デスクバンドや転送先一覧に含まれているタスクなど、別のソリューションが適している場合もあります。そのため、開発サイクルの一環として、アプリケーションに最適なソリューションを決定する必要があります。ただし、デスクバンドでは、透過性 ("グラス") が有効になっている Aero と IDeskBand2 インターフェイスをサポートする必要があることに注意してください。

API:
IDeskBand2

ページのトップへ


8. 通知領域

通知領域に対して変更が加えられたことにより、ユーザーはタスク バーに表示するアイコンをより細かく制御できるようになりました。既定ですべての通知アイコンが表示されなくなり、アイコンの表示はプログラムで制御することができません。ユーザーのみがタスク バーに表示する通知アイコンを選択することができます。通知のバルーンが表示されると、アイコンが一時的に表示されますが、ユーザーはその時点でアイコンを非表示にすることができます。そのため、アプリケーションからユーザーに情報を伝える必要がある場合には、タスク バー ボタンのアイコン オーバーレイが魅力的な選択肢となります。

ページのトップへ


9. 縮小表示

Windows Vista では、アプリケーションのタスク バー ボタンをポイントすると、実行中のウィンドウを表す縮小表示が表示されます。タスク バーでアプリケーションのウィンドウが折りたたまれている場合、この折りたたまれているアプリケーション ウィンドウは、縮小表示では束のように表されますが、縮小表示自体にはアクティブなウィンドウのみが表示されます。

Windows 7 では、グループの各メンバーが別々の縮小表示で表示され、対象を切り替えることもできるようになりました。アプリケーションでは、その子 (実際の子ウィンドウ、個々のドキュメント、タブなど) を定義し、通常、タスク バーに表示されないものについても、それぞれのウィンドウに対応する縮小表示を表示することができます。これにより、ユーザーは、アプリケーションを切り替えてから目的の表示に切り替えるのではなく、必要なアプリケーションの表示に直接切り替えることができます。たとえば、マルチドキュメント インターフェイス (MDI) および Tabbed Document Interface (タブ付きドキュメント インターフェイス、TDI) のアプリケーションでは、各ドキュメントまたはタブを個別の縮小表示として表示し、グループのタスク バー ボタンをポイントしたときに対象を切り替えることができます。

縮小表示

注:
Windows® Vista の場合と同様に、縮小表示を表示するには Aero がアクティブになっている必要があります。

API:
ITaskbarList3::RegisterTab
ITaskbarList3::SetTabActive
ITaskbarList3::SetTabOrder
ITaskbarList3::UnregisterTab

通常、ウィンドウの縮小表示は自動的に行われますが、表示される結果が最適でない場合は、縮小表示の対象を明示的に指定できます。たとえば、先ほど説明したように、アプリケーションの子ウィンドウは切り替えの対象になります。ただし、縮小表示が自動的に生成されるのは最上位ウィンドウだけで、子ウィンドウの縮小表示は汎用表示になります。これは、エンド ユーザーにとって理想的とは言えない (むしろ混乱を招く) エクスペリエンスになる可能性があります。

API:
DwmSetWindowAttribute (DWMWA_HAS_ICONIC_BITMAP フラグおよび DWMWA_FORCE_ICONIC_REPRESENTATION フラグを使用)
DwmSetIconicThumbnail
DwmSetIconicLivePreviewBitmap
DwmInvalidateIconicBitmaps
DwmSnapshotIconicThumbnail
WM_DWMSENDICONICTHUMBNAIL
WM_DWMSENDICONICLIVEPREVIEWBITMAP

プレビューの特定の領域を選択して、縮小表示として使用することができます。これは、ドキュメントやタブを縮小表示のサイズで表示した際に、同じように表示されることをアプリケーションが認識している場合に役に立つ可能性があります。アプリケーションでは、縮小表示を区別するのにユーザーが使用できる一部分のみを表示するように選択できます。ただし、縮小表示をポイントすると、ウィンドウ全体の縮小表示が表示されるので、ユーザーは実際の内容をすばやく確認できます。

縮小表示が表示可能な数より多い場合、プレビューは以前の縮小表示か標準のアイコンに戻ります。

API:
ITaskbarList3::SetThumbnailClip

ページのトップへ


10. プログラムによるガジェットの配置

確かに、ガジェット自体はタスク バーとは関係ありません。しかし、ガジェットとタスク バーは同じ考えに基づいています。すべてのタスク バーの変更は、可能な限り最も直接的な方法でユーザーが目的の場所に移動できるようにするという概念に基づいて行われています。アプリケーションで、この目的を実現するための、より進んだ 1 つの段階として、インストール中またはアプリケーションの初回起動時に、デスクトップにガジェットを追加する機能を使用できます (もちろん、このときにはユーザーのアクセス許可が必要です)。

ガジェット自体は標準的なガジェット プラットフォーム (旧称、サイドバー) のアイテムです。ガジェットは、エンド ツー エンドの使用シナリオの一環として、簡単にアクセスすることができる、主要なアプリケーションの便利な補助機能をユーザーに提供することを目的としています。

API:
IDesktopGadget

ページのトップへ