タスク バー拡張機能
Windows 7 の時点で、タスク バーは、ユーザーができるだけ迅速かつ効率的に移動する場所を取得するという基本原則の下で大幅に拡張されています。 そのために、ユーザーが実行する必要があるアプリケーション ウィンドウ、ファイル、およびコマンドが、以前に散在した情報ソースとコントロールを統合する 1 つのタスク バー ボタンに一元化されるようになりました。 ユーザーは、個々のドキュメントまたはタブの一般的なタスク、最近頻繁なファイル、アラート、進行状況通知、サムネイルをすべて 1 か所で見つけることができます。
- 統合起動と切り替え
- ジャンプ リスト
- 変換先
- タスク
- ジャンプ リストのカスタマイズ
- サムネイル ツール バー
- アイコン オーバーレイ
- プログレス バー
- デスクバンド
- 通知領域
- [縮小表示]
- 関連トピック
統合起動と切り替え
Windows 7 タスク バーの時点で、サイド リンク バーは別のツール バーではなくなりました。 サイド リンク バーに通常含まれるランチャー ショートカットがタスク バー自体にピン留めされ、現在実行中のアプリケーションのボタンが混ざり合っています。 ユーザーがピン留めされたランチャー ショートカットからアプリケーションを起動すると、アプリケーションが実行されている限り、アイコンはアプリケーションのタスク バー ボタンに変換されます。 ユーザーがアプリケーションを閉じると、ボタンはアイコンに戻ります。 ただし、起動ツールのショートカットと実行中のアプリケーションのボタンの両方が、Windows 7 タスク バー ボタンとは異なる形式です。
新しいインストールでは、少数のアプリケーションセットが既定でピン留めされています。 これら以外の場合は、ユーザーのみが追加のアプリケーションをピン留めできます。アプリケーションによるプログラムによるピン留めは許可されていません。
サイド リンク バーの [デスクトップの表示] 機能が、タスク バーの右端にあります。 この領域をポイントすると、アクティブなすべてのウィンドウが透明になり、デスクトップが表示されます。 領域をクリックすると、すべてのウィンドウを最小化し、デスクトップに切り替える使い慣れたアクションが実行されます。
アプリケーションの実行中、タスク バー ボタンは、次のすべての機能にアクセスするための 1 つの場所になります。それぞれについて以下で詳しく説明します。
- タスク: 一般的なアプリケーション コマンド。アプリケーションが実行されていない場合でも表示されます。
- 宛先: アプリケーションに固有の最近および頻繁にアクセスされるファイル。
- サムネイル: ウィンドウの切り替え(個々のタブやドキュメントの切り替えターゲットを含む)。
- サムネイル ツールバー: サムネイル自体からの基本的なアプリケーション コントロール。
- 進行状況バー と アイコン オーバーレイ: 状態通知。
タスク バー ボタンは、起動ツール、1 つのアプリケーション ウィンドウ、またはグループを表すことができます。 アプリケーション ユーザー モデル ID (AppUserModelID) と呼ばれる識別子が各グループに割り当てられます。 AppUserModelID を指定すると、標準タスク バーのグループ化をオーバーライドできます。これにより、ウィンドウが同じグループのメンバーになるのは、それ以外の場合と見なされない場合に同じグループのメンバーになります。 グループの各メンバーには、グループのタスク バー ボタンの上にマウス ポインターを合わせると表示されるサムネイル ポップアップに個別のプレビューが表示されます。 グループ化自体は省略可能なままであることに注意してください。
Windows 7 の時点で、タスク バー ボタンをドラッグ アンド ドロップ操作でユーザーが再配置できるようになりました。
注意
サイド リンク バー の UI はなくなりましたが、サイド リンク バー フォルダー (FOLDERID_QuickLaunch) は下位互換性のために引き続き使用できます。 ただし、新しいアプリケーションでは、インストール中にサイド リンク バーにアイコンを追加するように要求しないでください。
詳細については、「 アプリケーション ユーザー モデル ID (AppUserModelIDs)」を参照してください。
ジャンプ リスト
ユーザーは通常、ドキュメントにアクセスしたり、プログラム内でタスクを実行したりする目的でプログラムを起動します。 ゲーム プログラムのユーザーは、最初からゲームを再起動するのではなく、保存されたゲームにアクセスしたり、特定のキャラクターとして起動したりしたい場合があります。 ユーザーが最終的な目標をより効率的に達成できるように、アプリケーションに関連付けられている 宛先 と一般的な タスク の一覧が、そのアプリケーションのタスク バー ボタン (および同等の [スタート ] メニュー エントリ) に添付されます。 これはアプリケーションのジャンプ リストです。 ジャンプ リストは、タスク バー ボタンが起動ツールの状態 (アプリケーションが実行されていない) か、または 1 つ以上のウィンドウを表しているかどうかに関係なく使用できます。 次の図に示すように、タスク バー ボタンを右クリックすると、アプリケーションのジャンプ リストが表示されます。
既定では、標準のジャンプ リストには最近使用したアイテムとピン留めされたアイテムという 2 つのカテゴリが含まれていますが、コンテンツを含むカテゴリのみが UI に表示されるため、これらのカテゴリは初回起動時には表示されません。 常に存在するアプリケーション起動アイコン (アプリケーションのより多くのインスタンスを起動する)、タスク バーからアプリケーションをピン留めまたはピン留め解除するオプション、開いているウィンドウの Close コマンドです。
変換先
最近のカテゴリと頻繁なカテゴリには、宛先が含まれていると見なされます。 宛先 (通常はファイル、ドキュメント、または URL) は、編集、参照、表示などを行うことができます。 宛先は、アクションではなくモノと考えてください。 通常、宛先はシェル名前空間内の項目であり、 IShellItem または IShellLink で表されます。 宛先リストのこれらの部分は、[ スタート ] メニューの最近使用したドキュメント リスト (既定では表示されません) と頻繁に使用されるアプリケーション リストに似ていますが、アプリケーションに固有であるため、ユーザーにとってより正確で便利です。 宛先リストで使用される結果は、 SHAddToRecentDocs の呼び出しによって計算されます。 ユーザーが Windows エクスプローラーからファイルを開いたり、共通ファイル ダイアログを使用してファイルを開いたり、保存したり、作成したりすると、SHAddToRecentDocs が自動的に呼び出されるため、多くのアプリケーションで、そのパーツに対する操作を行わずに、新しい項目が宛先リストに表示されます。
宛先の起動は、 Open With コマンドを使用して項目を起動するのとよく似ています。 アプリケーションが起動し、その宛先が読み込まれ、使用できる状態になります。 宛先リスト内のアイテムは、メール メッセージなどのドロップ先にリストからドラッグすることもできます。 これらの項目を宛先リストに一元化することで、ユーザーがはるかに速く行きたい場所を取得します。これが目標です。
アイテムが宛先リストの [最近 ] カテゴリ (または後のセクションで説明した [頻繁 なカテゴリ] または カスタム カテゴリ ) に表示される場合、ユーザーはアイテムが常にリストに含まれるようにして、すばやくアクセスできます。 これを行うには、そのアイテムをリストにピン留めして、そのアイテムを [固定] カテゴリに追加します。 ユーザーがアクティブに宛先を操作している場合、ユーザーは簡単に移動先を必要とするため、アプリケーションの宛先リストにピン留めします。 ユーザーの作業が完了すると、項目のピン留めを解除するだけです。 このユーザー コントロールは、リストを整理して関連性を維持します。
宛先リストは、[ スタート ] メニューのアプリケーション固有のバージョンと見なすことができます。 宛先リストはショートカット メニューではありません。 宛先リスト内の各項目を右クリックして、独自のショートカット メニューを表示できます。
API
- IApplicationDestinations::RemoveDestination
- IApplicationDestinations::RemoveAllDestinations
- IApplicationDocumentLists::GetList
- SHAddToRecentDocs
タスク
ジャンプ リストのもう 1 つの組み込み部分は 、[タスク] カテゴリです。 宛先は何かですが、タスクはアクションであり、この場合はアプリケーション固有のアクションです。 別の言い方をすると、変換先は名詞で、タスクは動詞です。 通常、タスクは、アプリケーションによってトリガーできる特定の機能を示すコマンド ライン引数を持つ IShellLink 項目です。 ここでも、アプリケーションに関連する情報を実用的な情報と同じだけ一元化するという考え方です。
アプリケーションは、プログラムの機能と、ユーザーがそれらに対して行うことを期待される重要な事柄の両方に基づいてタスクを定義します。 タスクを動作させるためにアプリケーションを実行する必要がないという点で、タスクはコンテキストフリーである必要があります。 また、メール メッセージの作成やメール プログラムでの予定表の開き、ワード プロセッサでの新しいドキュメントの作成、特定のモードでのアプリケーションの起動、サブコマンドの 1 つ起動など、通常のユーザーがアプリケーションで実行する、統計的に最も一般的なアクションである必要があります。 標準ユーザーが必要としない高度な機能や、登録などの 1 回限りのアクションを使用して、アプリケーションでメニューを乱雑にしないようにする必要があります。 アップグレードや特別オファーなどのプロモーションアイテムにはタスクを使用しないでください。
タスク リストは静的にすることを強くお勧めします。 アプリケーションの状態や状態に関係なく、同じままにする必要があります。 リストを動的に変更することは可能ですが、これにより、宛先リストのその部分が変更されるとは思わないユーザーが混乱する可能性があることを考慮する必要があります。
API
ジャンプ リストのカスタマイズ
アプリケーションでは、独自のカテゴリを定義し、ジャンプ リストの標準の Recent カテゴリと Frequent カテゴリに加えて、または代わりに追加できます。 アプリケーションは、アプリケーションのアーキテクチャと使用目的に基づいて、これらのカスタム カテゴリ内の独自の宛先を制御できます。 次のスクリーン ショットは、[履歴] カテゴリを含むカスタム ジャンプ リストを示しています。
アプリケーションがカスタム カテゴリを提供することを決定した場合、そのアプリケーションはカスタム カテゴリを設定する責任を負います。 カテゴリの内容は引き続きユーザー固有であり、ユーザー履歴、アクション、またはその両方に基づく必要がありますが、カスタム カテゴリを使用すると、アプリケーションは追跡する対象と、アプリケーション オプションに基づいて無視する内容を決定できます。 たとえば、オーディオ プログラムでは、最近再生したアルバムのみを含め、最近再生された個々のトラックを無視するように選択できます。
ユーザーがリストからアイテムを削除した場合 (常にユーザー オプション) は、アプリケーションでこれを尊重する必要があります。 また、アプリケーションでは、リスト内の項目が有効であること、または削除された場合に正常に失敗することも確認する必要があります。 個々のアイテムまたはリストの内容全体をプログラムで削除できます。
宛先リスト内の項目の最大数は、表示解像度やフォント サイズなどのさまざまな要因に基づいてシステムによって決定されます。 すべてのカテゴリのすべての項目に十分な領域がない場合は、一番下から切り捨てられます。
API
サムネイル ツール バー
ユーザーがアプリケーションのウィンドウを復元またはアクティブ化することなく、特定のウィンドウのキー コマンドにアクセスできるようにするには、アクティブなツール バー コントロールをそのウィンドウのサムネイル プレビューに埋め込むことができます。 たとえば、Windows メディア プレーヤーは、再生、一時停止、ミュート、停止などの標準的なメディア トランスポート コントロールを提供する場合があります。 次の図に示すように、UI はサムネイルのすぐ下にこのツール バーを表示します。このツール バーの一部はカバーされません。
このツール バーは、使い慣れた標準のツール バー共通コントロールです。 最大 7 つのボタンがあります。 各ボタンの ID、画像、ヒント、および状態は構造体で定義され、タスク バーに渡されます。 アプリケーションでは、現在の状態で必要に応じて、サムネイル ツール バーのボタンの表示、有効化、無効化、または非表示を切り替えることができます。
サムネイルを表示するスペースと表示するサムネイルの数が限られているため、アプリケーションでは特定のツール バー サイズが保証されません。 スペースが制限されている場合、ツールバーのボタンは右から左に切り捨てられます。 そのため、ツール バーを設計するときは、ボタンに関連付けられているコマンドに優先順位を付け、最も重要なものが先に来て、スペースの問題のために削除される可能性が最も低いようにする必要があります。
注意
アプリケーションにウィンドウが表示されると、タスク バー ボタンがシステムによって作成されます。 ボタンが配置されると、タスク バーから タスク バーボタンの作成 メッセージがウィンドウに送信されます。 その値は、 RegisterWindowMessage(L("TaskbarButtonCreated")) を呼び出すことによって計算されます。 ITaskbarList3 メソッドを呼び出す前に、アプリケーションでそのメッセージを受信する必要があります。
API
- ITaskbarList3::ThumbBarAddButtons
- ITaskbarList3::ThumbBarSetImageList
- ITaskbarList3::ThumbBarUpdateButtons
- THUMBBUTTON
アイコン オーバーレイ
アプリケーションは、ボタンに小さなオーバーレイを表示することで、タスク バー ボタンを介して特定の通知と状態をユーザーに伝えることができます。 これらのオーバーレイは、ボタンの右下隅に表示されるショートカットまたはセキュリティ通知に使用される既存のオーバーレイの種類に似ています。 オーバーレイ アイコンを表示するには、次のスクリーン ショットに示すように、タスク バーが既定の大きなアイコン モードである必要があります。
アイコン オーバーレイは状態のコンテキスト通知として機能し、その情報をユーザーに伝えるために別の通知領域の状態アイコンの必要性を否定することを目的としています。 たとえば、現在通知領域に表示されている Microsoft Outlook の新しいメールの状態は、タスク バー ボタンのオーバーレイを使用して示すようになりました。 ここでも、開発サイクル中に、アプリケーションに最適な方法を決定する必要があります。 オーバーレイ アイコンは、ネットワークの状態、メッセンジャーの状態、新しいメールなどの重要な、長期的な状態または通知を提供することを目的としています。 ユーザーは、絶えず変化するオーバーレイやアニメーションを表示しないでください。
1 つのオーバーレイがタスク バー ボタンにオーバーレイされ、個々のウィンドウのサムネイルには表示されないため、これはウィンドウ単位ではなくグループごとの機能です。 オーバーレイ アイコンの要求は、タスク バー グループ内の個々のウィンドウから受信できますが、キューに入れられません。 最後に受け取ったオーバーレイが表示されます。
API
プログレス バー
タスク バー ボタンを使用すると、進行状況バーを表示できます。 これにより、ウィンドウは、ウィンドウ自体に切り替えることなく、ユーザーに進行状況情報を提供できます。 ユーザーは、他のウィンドウで発生している 1 つ以上の操作の進行状況をひとめで確認しながら、別のアプリケーションの生産性を維持できます。 タスク バー ボタンの進行状況バーには、ウィンドウ自体に詳細な進行状況インジケーターが反映されます。 この機能を使用すると、ファイル のコピー、ダウンロード、インストール、メディアの書き込み、または一定期間かかる操作を追跡できます。 この機能は、Web ページの読み込みやドキュメントの印刷など、通常の周辺機器アクションでの使用を目的としたものではありません。 その種類の進行状況は、引き続きウィンドウのステータス バーに表示されます。
タスク バー ボタンの進行状況バーは、使い慣れたプログレス バー コントロールと同様のエクスペリエンスです。 操作の完了した割合に基づいて進行状況を決定するか、不確定なマーキー スタイルの進行状況を表示して、残り時間の予測なしで操作が進行中であることを示すことができます。 また、操作が一時停止しているか、エラーが発生し、ユーザーの介入が必要であることを示すこともできます。
API
デスクバンド
Windows 7 より前のバージョンの Windows では、サムネイル ツール バー機能に似た機能を、タスク バーでホストされているツールバーである deskband を使用して実現できます。 たとえば、Windows メディア プレーヤーは、標準的なボタンではなく、トランスポート コントロールのセットとしてタスク バーに最小化できます。 Windows 7 では、デスクバンドは引き続き実装でき、サムネイル ツール バーはそれらをすべて置き換えることを意図したものではありません。 すべてのアプリケーションがサムネイル ツール バーに役立つわけではありません。また、deskband や宛先リストのタスクなどの別のソリューションが、アプリケーションに適した答えである可能性があります。開発サイクルの一環として、アプリケーションに最適なソリューションを決定する必要があります。 ただし、デスクバンドは、半透明 ("glass") が有効な Windows Aero と IDeskBand2 インターフェイスをサポートする必要があることに注意してください。
API
通知領域
通知領域に変更が加わり、タスク バーに表示されるアイコンをより細かく制御できます。 すべての通知アイコンが既定で非表示になり、その可視性をプログラムで制御することはできません。 タスク バーに表示される通知アイコンを選択できるのは、ユーザーだけです。 通知バルーンが表示されると、アイコンは一時的に表示されますが、ユーザーは通知バルーンを無音にすることもできます。 そのため、タスク バー ボタンのアイコン オーバーレイは、アプリケーションがその情報をユーザーに伝える場合に魅力的な選択肢になります。
サムネイル
Windows Vista では、アプリケーションのタスク バー ボタンをポイントすると、実行中のウィンドウを表すサムネイルが表示されます。 タスク バーがアプリケーションのウィンドウを折りたたんだ場合、サムネイルはスタックとして表示されてこれを表しますが、サムネイル自体にはアクティブウィンドウのみが表示されます。
Windows 7 では、グループの各メンバーが個別のサムネイルとして表示され、現在はスイッチ ターゲットでもあります。 アプリケーションは、その子 (真の子ウィンドウ、個々のドキュメント、タブなど) を定義し、タスク バーに通常表示されない場合でも、それらのウィンドウごとに対応するサムネイルを提供できます。 これにより、ユーザーはアプリケーションに切り替えて宛先に切り替えるのではなく、必要なアプリケーションのビューに直接切り替えることができます。 たとえば、複数ドキュメント インターフェイス (MDI)/タブ付きドキュメント インターフェイス (TDI) アプリケーションでは、各ドキュメントまたはタブを個別のサムネイルとして表示し、グループのタスク バー ボタンの上にマウス ポインターを合わせるとターゲットを切り替えることができます。
注意
Windows Vista と同様に、Aero はサムネイルを表示するためにアクティブである必要があります。
API
- ITaskbarList3::RegisterTab
- ITaskbarList3::SetTabActive
- ITaskbarList3::SetTabOrder
- ITaskbarList3::UnregisterTab
- ITaskbarList4::SetTabProperties
ウィンドウのサムネイル表現は通常は自動ですが、結果が最適でない場合は、サムネイルを明示的に指定できます。 既定では、最上位のウィンドウにのみサムネイルが自動的に生成され、子ウィンドウのサムネイルは一般的な表現として表示されます。 これにより、エンド ユーザーにとって理想的ではない (混乱する) エクスペリエンスが発生する可能性があります。 たとえば、子ウィンドウごとに特定のスイッチ ターゲットサムネイルを使用すると、ユーザー エクスペリエンスが大幅に向上します。
API
- DwmSetWindowAttribute
- DwmSetIconicThumbnail
- DwmSetIconicLivePreviewBitmap
- DwmInvalidateIconicBitmaps
- WM_DWMSENDICONICTHUMBNAIL
- WM_DWMSENDICONICLIVEPREVIEWBITMAP
サムネイルとして使用するウィンドウの特定の領域を選択できます。 これは、アプリケーションがサムネイル サイズで表示したときに、ドキュメントまたはタブが類似して表示されることを認識している場合に役立ちます。 その後、アプリケーションは、ユーザーがサムネイルを区別するために使用できるクライアント領域の一部のみを表示することを選択できます。 ただし、サムネイルの上にマウス ポインターを置くと、その背後にある完全なウィンドウのビューが表示されるので、ユーザーはそれらを簡単に確認できます。
表示できる数よりも多くのサムネイルがある場合、プレビューは従来のサムネイルまたは標準アイコンに戻ります。
API
通常は IsShortCut エントリを含むファイルの種類にのみ必要な項目のショートカット メニューにタスク バーにピン留めするには、適切なコンテキスト メニュー ハンドラーを登録します。 これは、[ スタート メニューにピン留めする] にも適用されます。 詳細については、「 シェル拡張ハンドラーの登録 」を参照してください。
関連トピック