Share via


ゲーム エクスプローラーのタスク

Windows Vista 以降では、ユーザーはタスクを使用して Windows ゲーム エクスプローラー内のすべてのゲームを操作できます。タスクの例としては、Windows ゲーム エクスプローラーでゲームをダブルクリックして起動するアクションが挙げられます。タイトルのタスクを追加するには、次の手順を実行します。

  1. Game Definition File Editor のアプリケーション ウィンドウ」の手順に従ってタスクを作成します (GDF Editor を使用してタスクを追加する方法の詳細については、プレイ タスクおよびサポート タスクを追加する手順を参照してください)。
  2. 次に、GameUXInstallHelper サンプルを使用してそのタスクを登録します。代わりの方法として、このトピックで提供している情報を使用してタスクを手動で登録することもできます。

このドキュメントでは、タスクを登録する方法と場所の詳細を説明します。

タスクの概要と要件

タスクとは、Windows ゲーム エクスプローラー内のエントリーに対して実行可能なアクションの名前です。タスクは、ユーザーがゲーム エクスプローラー内のゲームを操作する方法を決定します。タスクを使用すると、ユーザーがゲーム エクスプローラー内のゲームをダブルクリックしたときに何が生じるか、またユーザーがゲーム上で右クリックしたときにコンテキスト メニューにどのようなエントリが表示されるかを決定できます。

プライマリ プレイ タスクと呼ばれるタスクは、すべてのゲームで必須です。プライマリ プレイ タスクとは、ユーザーがゲーム エクスプローラー内のゲームをダブルクリックしたときに実行されるタスクです。

タスクの作成方法

タスクは、ゲームのインストール時に、ゲーム エクスプローラー内にゲームに関連付けられたサブディレクトリを作成し、そのサブディレクトリへのショートカットを追加することにより、そのゲームと関連付けられます。サブディレクトリは、InstanceID (GUID) を使用して識別されます。InstanceID は作成されて AddGame に渡されるか、または AddGame によって生成されて返されています。

タスクをゲームに関連付けるには

  1. すべてのゲーム ファイルをインストールします。

  2. AddGame を呼び出し、ゲームをゲーム エクスプローラーに追加します。その際、指定したカスタム InstanceID を使用するか、または AddGame で InstanceID を作成します。

  3. ファイルまたはレジストリを削除する目的で使用する場合は、 GameInstanceID を永続化します。

  4. 次の場所のいずれかに、GameInstanceID と一致する名前 (中かっこで囲む) を持つサブディレクトリを作成します。

    • ゲームがすべてのユーザー対象にインストールされる場合は、共通タスクのディレクトリ
    • ゲームが現在のユーザーのみを対象にインストールされる場合は、ユーザーごとのタスクのディレクトリ
  5. 前の手順で作成した {GameInstanceID} サブディレクトリ内に、タスクのサブディレクトリを作成します。次の 2 つのサブディレクトリを作成できます。PlayTasks および SupportTasks です。

  6. 前の手順で作成したサブディレクトリにタスクのショートカットを追加します。

タスク ディレクトリの構造とルール

ゲームのインストール時に、ゲーム エクスプローラー内の特定の場所にサブディレクトリを作成して、その中のタスクを認識できるようにする必要があります。これらのサブディレクトリは、タスクの対象 (すべてのユーザーまたは特定のユーザー)、インストールされるゲームのインスタンス、および作成するタスクのタイプ (プレイ タスクまたはサポート タスク) を示します。

適切なタスク ディレクトリ構造を作成するには

  1. ゲーム インスタンスが現在のユーザーまたはすべてのユーザーのどちらを対象にインストールされているかを特定し、次の操作を実行します。

    • 現在のユーザーが対象の場合は、SHGetKnownFolderPath を FOLDERID_GameTasks と共に呼び出して、現在のユーザーのゲーム エクスプローラー データ ディレクトリを取得します (Windows XP との互換性が必要なアプリケーションでは代わりに SHGetFolderPath を使用する必要があります。表 1 を参照してください)。
    • すべてのユーザーが対象の場合は、SHGetKnownFolderPath を FOLDERID_CommonGameTasks と共に呼び出して、共通のゲーム エクスプローラー データ ディレクトリを取得します (Windows XP との互換性が必要なアプリケーションでは代わりに SHGetFolderPath を使用する必要があります。表 1 を参照してください)。
  2. 前の手順で取得したディレクトリ パスに "Microsoft\Windows\GameExplorer\" を付加します。

  3. AddGame への以前の呼び出しから InstanceID を取得します。前の手順のディレクトリ内にサブディレクトリを作成します。サブディレクトリの名前は、レジストリ形式の InstanceID を中かっこで囲みます (例: {00d8862b-6454-4957-a821-3d98d74c76be})。より簡単にこれを行うには、StringFromGUID2 関数を呼び出せます。この関数は、中かっこを追加することも含め、GUID を適切に書式設定します。

  4. 前の手順の InstanceID ディレクトリの下に PlayTasks という名前のサブディレクトリを作成します。ユーザーにサポート タスクを提供する場合は、オプションとして SupportTasks という名前のサブディレクトリを作成します。

  5. PlayTasks ディレクトリ内で、0 (ゼロ) という名前のディレクトリを作成します。このサブディレクトリ内に、ゲームへのプライマリ ショートカットを配置します。このショートカットは、ゲーム エクスプローラー内でゲームがダブルクリックされたときに、既定のタスクを開始します。

  6. 作成するその他のすべてのタスクについて、前の手順の 3 つのディレクトリ (PlayTasks または SupportTasks) のうちの 1 つにサブディレクトリを作成します。サブディレクトリは、そのディレクトリ内で連番を付けられます。この番号付けされたサブディレクトリ内に、タスクのショートカットを配置します。このショートカットの名前は、ユーザーがゲーム エクスプローラーでゲームを右クリックしたときに表示される名前となります。既定のタスクは常にプレイと呼ばれます。

表 1 各種 Windows リリースのゲーム エクスプローラー タスク フォルダーの親ディレクトリ

名前 SHGetFolderPath と共に使用するためのレガシー CSIDL 定義 (Windows XP 以降) SHGetKnownFolderPath と共に使用するための FolderID 定義 (Windows Vista 以降)
すべてのユーザーのタスク CSIDL_COMMON_APPDATA\Microsoft\Windows\GameExplorer FOLDERID_CommonGameTasks
現在のユーザーのみのタスク CSIDL_LOCAL_APPDATA\Microsoft\Windows\GameExplorer FOLDERID_GameTasks

各種 Windows リリースのゲームのタスク ディレクトリ構造の例

//for all users//use ShGetFolderPath with CSIDL_COMMON_APPDATA\Microsoft\Windows\GameExplorer\ as the parent directoryCSIDL_COMMON_APPDATA\Microsoft\Windows\GameExplorer\{00d8862b-6454-4957-a821-3d98d74c76be}\PlayTasks\0\Play.lnkCSIDL_COMMON_APPDATA\Microsoft\Windows\GameExplorer\{00d8862b-6454-4957-a821-3d98d74c76be}\PlayTasks\1\Play Online.lnkCSIDL_COMMON_APPDATA\Microsoft\Windows\GameExplorer\{00d8862b-6454-4957-a821-3d98d74c76be}\SupportTasks\0\My Game's Website.lnk//for the current user only//use ShGetFolderPath with CSIDL_LOCAL_APPDATA\Microsoft\Windows\GameExplorer\ as the parent directoryCSIDL_LOCAL_APPDATA\Microsoft\Windows\GameExplorer\{00d8862b-6454-4957-a821-3d98d74c76be}\PlayTasks\2\Play Saved Game.lnk    

Windows Vista 以降のみにおけるゲームのタスク ディレクトリ構造の例

//for all users//use SHGetKnownFolderPath with FOLDERID_CommonGameTasks as the parent directoryFOLDERID_CommonGameTasks\{00d8862b-6454-4957-a821-3d98d74c76be}\PlayTasks\0\Play.lnkFOLDERID_CommonGameTasks\{00d8862b-6454-4957-a821-3d98d74c76be}\PlayTasks\1\Play Online.lnkFOLDERID_CommonGameTasks\{00d8862b-6454-4957-a821-3d98d74c76be}\SupportTasks\0\My Game's Website.lnk    

タスク ルール

タスクには次の特性が必要です。

  • プレイ タスクは、1 つの IShellLink または IUniformResourceLocator ショートカットで構成されます。サポート タスクは、1 つの IUniformResourceLocator ショートカットである必要があります。
  • タスクはゲーム インストールの 1 つのインスタンスと関連付けられます。インスタンスとは、特定のユーザーまたはすべてのユーザーに対してインストールされたゲームの 1 つのコピーです。
  • タスクは、プレイまたはサポートという 2 つのタスク カテゴリのいずれかに属します。ユーザーがゲーム エクスプローラーでゲームを右クリックしたときに、プレイ タスクとサポート タスクは区切り記号で互いに分かれて表示されます。
  • タスクのショートカットは、タスク カテゴリの適切なディレクトリ (PlayTasks または SupportTasks) 内の連番を付けられたサブディレクトリ内に配置する必要があります。任意のカテゴリ内の各タスクには、それぞれ独自の番号付けされたサブディレクトリが必要です。タスクは、番号付けされたサブディレクトリにより、昇順で表示されます。
  • PlayTasks\0\ に配置されるタスクはプライマリ プレイ タスクです。このタスクは必須です。ユーザーがゲーム エクスプローラーでゲームをダブルクリックすると、このタスクが実行されます。このタスクに表示される名前は、ショートカットの名前にかかわらず Play となります。
  • 現在のユーザーのディレクトリに配置されるタスクは、共通 (すべてのユーザーの) ディレクトリ内の同じタスクをオーバーライドします。

タスクを削除する

システムからゲームを削除する場合は、永続的なゲームの InstanceID を使用して、削除されるゲーム インスタンスのタスク ディレクトリを検索して削除してください。

関連トピック

  • Game Definition File Editor (gdfmaker.exe)
    ローカライズされたゲーム定義ファイル (GDF)、およびゲーム定義ファイルをコンパイルするために必要なリソース コンパイラ スクリプトを作成することを目的として設計されたグラフィカルなユーティリティです。
  • Game Definition File Editor ツールのチュートリアル
    ローカライズされたゲーム定義ファイル (GDF) を作成するために設計された Game Definition File Editor を使用する方法を説明します。