Partager via


Explorateur de jeux Windows pour les développeurs de jeux

Windows Vista améliore l’expérience utilisateur des jeux sur Windows en incluant l’Explorateur jeux. L’Explorateur jeux est exposé dans le menu Démarrer de Windows Vista en tant que dossier Jeux et fournit un emplacement central pour accéder aux jeux.

À compter de la version de mars 2009 du Kit de développement logiciel (SDK) DirectX, un nouveau schéma de fichier de définition de jeu (GDF) est utilisé pour prendre en charge les fonctionnalités dans windows 7, le fournisseur de jeux et le flux RSS et IGameExplorer2. IGameExplorer2 est une nouvelle interface sur Windows 7 qui simplifie le processus d’intégration d’un jeu à Games Explorer.

Cet article décrit le processus d’inscription d’un jeu avec l’Explorateur de jeux et les contrôles parental sur Windows Vista et Windows 7 à l’aide du nouveau schéma GDF.

Note

L’Explorateur de jeux n’est pas disponible dans Windows 10, version 1803 et ultérieure.

Contenu:

Conditions préalables

Avant de pouvoir intégrer un jeu dans l’Explorateur de jeux, vous devez créer un fichier de définition de jeu (GDF). Un fichier GDF est un fichier XML qui contient des métadonnées qui décrivent le jeu. Dans la version de mars 2009 du Kit de développement logiciel (SDK) DirectX, une section pour le fournisseur de jeux, le flux RSS et la tâche de jeu a été ajoutée au schéma GDF. Pour utiliser les instructions de cet article, vous devez utiliser ce nouveau format GDF pour créer votre fichier GDF.

Microsoft fournit un outil permettant de créer des fichiers GDFs dans le Kit de développement logiciel (SDK) DirectX, l’éditeur de fichiers de définition de jeu, pour faciliter ce processus de création. Cet outil vous aide également à créer des versions localisées d’un GDF.

Une fois qu’un GDF a été créé et localisé, il doit être encapsulé dans une section de ressource d’un fichier binaire (exécutable ou DLL), ainsi que la miniature et l’icône du jeu. Le GDF contient toutes les métadonnées associées au jeu, y compris l’évaluation du jeu. Les contrôles parental Windows utilisent l’évaluation du jeu pour permettre aux parents de contrôler l’accès au jeu. Le fichier binaire qui contient le GDF doit être signé numériquement avec un certificat Authenticode valide ; sinon, Games Explorer et le système de contrôle parental ignorent l’évaluation du jeu, car les informations d’évaluation ne peuvent pas être approuvées sans certification. Pour plus d’informations sur la signature du code avec Authenticode, consultez Signature Authenticode pour les développeurs de jeux.

Intégration à un programme d’installation

Pour simplifier l’intégration de Games Explorer, l’exemple GameUXInstallHelper fournit une API commune qui peut être appelée sur Windows XP, Windows Vista et Windows 7. Il est conçu pour fonctionner avec des scripts pour InstallShield et Wise Installation System, ainsi que des actions personnalisées MSI et des outils d’installation personnalisés. La détection du système d’exploitation est gérée à l’intérieur de cet exemple de DLL. Par conséquent, l’appelant n’a pas besoin de s’inquiéter si le client exécute Windows XP, Windows Vista ou Windows 7.

Les fonctions exportées par cette DLL sont les suivantes :

GameExplorerInstallW

Inscrit un jeu auprès de Games Explorer, en fonction d’un chemin d’accès au fichier binaire GDF, d’un chemin d’accès complet au dossier où le jeu est installé et de l’étendue d’installation.

GameExplorerInstallA

Inscrit un jeu auprès de Games Explorer ; Version ANSI de GameExplorerInstallW.

GameExplorerUninstallW

Supprime un jeu de l’inscription auprès de Games Explorer, en fonction d’un chemin d’accès au fichier binaire GDF.

GameExplorerUninstallA

Supprime un jeu de l’inscription auprès de Games Explorer ; Version ANSI de GameExplorerUninstallW.

GameExplorerSetMSIProperties

Configure les propriétés CustomActionData pour les actions d’une installation personnalisée différée MSI. L’utilisation de cette fonction est décrite en détail plus loin dans cet article.

GameExplorerInstallUsingMSI

Ajoute un jeu à Games Explorer ; pour une utilisation pendant une installation d’action personnalisée MSI.

GameExplorerUninstallUsingMSI

Supprimer un jeu de Games Explorer ; pour une utilisation pendant une installation d’action personnalisée MSI.

Ces fonctions sont expliquées plus en détail dans l’en-tête GameUXInstallHelper.h.

Processus d’intégration

Une fois que les fichiers GDF et associés ont été ajoutés à une ressource binaire, il est ensuite possible d’intégrer le jeu à Games Explorer. L’utilisation de GameUXInstallHelper simplifie le processus d’intégration. Pour inscrire le jeu auprès de Games Explorer, appelez le GameExplorerInstall avec un chemin d’accès au fichier binaire GDF, un chemin complet vers le dossier où le jeu est installé et l’étendue d’installation. Pour supprimer l’inscription du jeu, appelez GameExplorerUninstall avec un chemin d’accès au fichier binaire GDF.

Notez que le processus de suppression supprime uniquement une installation unique. Si un jeu a été installé plusieurs fois, ce processus doit être répété pour chaque installation unique.

Tâches de l’Explorateur jeux

Les tâches de l’Explorateur de jeux s’affichent dans le menu contextuel d’un élément dans l’Explorateur de jeux. Les tâches sont divisées en tâches de jeu et en tâches de support. Les tâches de jeu lancent un jeu en mode particulier, tandis que les tâches de support servent n’importe quel autre objectif, y compris la liaison à des sites web.

Dans Windows Vista, les tâches sont simplement des raccourcis situés dans des dossiers spécifiques. Les tâches de lecture et les tâches de support sont stockées dans des dossiers avec les noms PlayTasks et SupportTasks correspondants. GameUXInstallHelper peut lire les informations de tâche du jeu à partir du fichier binaire GDF et créer automatiquement tous les raccourcis.

Dans Windows 7, les raccourcis vers les tâches ne sont pas nécessaires, car l’Explorateur jeux obtient toutes les informations de tâche directement à partir du fichier binaire GDF.

Intégration à InstallScript

L’appel des API Games Explorer à partir de InstallShield’s InstallScript est facile à l’aide de l’exemple GameUXInstallHelper. Les étapes nécessaires à l’intégration à InstallShield sont les suivantes :

  1. Ouvrez un projet InstallScript dans l’éditeur InstallShield.

  2. Ajoutez GameUXInstallHelper.dll au projet à installer dans le répertoire cible.

    Pour ajouter GameUXInstallHelper.dll à un projet InstallScript :

    1. Sous l’onglet concepteur d’installation, cliquez sur données d’application dans le volet de navigation de gauche.

    2. Cliquez sur fichiers et dossiers, puis parcourez les dossiers de l’ordinateur source pour rechercher GameUXInstallerHelper.dll dans les fichiers de l’ordinateur source .

      L’emplacement par défaut de GameUXInstallerHelper.dll est directX SDK root\Samples\C++\Misc\Bin\x86.

    3. Sous dossiers de l’ordinateur de destination, cliquez sur dossier cible de l’application.

    4. Faites glisser GameUXInstallerHelper.dll des fichiers de l’ordinateur source vers les fichiers de l’ordinateur de destination .

  3. Dans l’Explorateur InstallScript, cliquez sur le fichier InstallScript (généralement setup.rul) qui appelle la fonction DLL.

  4. Collez le code InstallScript suivant dans le fichier :

    typedef GUID
    begin
    LONG  Data1;
    SHORT Data2;
    SHORT Data3;
    CHAR  Data4(8);
    end;
    
    prototype LONG GameUXInstallHelper.GameExplorerInstallW(WSTRING, WSTRING, NUMBER);
    prototype LONG GameUXInstallHelper.GameExplorerUninstallW(WSTRING);
    
    function OnMoved()
    
    WSTRING gdfbin[256];
    WSTRING path[256];
    NUMBER scope;
    
    begin
    
    if !MAINTENANCE then
    
    UseDLL( TARGETDIR ^ "GameUXInstallHelper.dll" );
    UseDLL( WINSYSDIR ^ "OLE32.dll" );
    
    path = TARGETDIR;
    gdfbin = TARGETDIR ^ "bin\\ExampleGame.exe";  // TODO: Change this to point to binary containing the GDF
    
    if ALLUSERS == 1 then
    scope = 3;
    else
    scope = 2;
    endif;
    
    GameUXInstallHelper.GameExplorerInstallW( gdfbin, path, scope);
    
    UnUseDLL( TARGETDIR ^ "GameUXInstallHelper.dll" );
    UnUseDLL( WINSYSDIR ^ "OLE32.dll" );
    
    endif;
    
    end;
    
    function OnMoving()
    
    WSTRING gdfbin[256];
    
    begin
    
    if MAINTENANCE && UNINST != "" then
    
    UseDLL( TARGETDIR ^ "GameUXInstallHelper.dll" );
    UseDLL( WINSYSDIR ^ "OLE32.dll" );
    
    gdfbin = path ^ "bin\\ExampleGame.exe";  // TODO: Change this to point to binary containing the GDF
    
    GameUXInstallHelper.GameExplorerUninstallW(gdfbin);
    UnUseDLL( TARGETDIR ^ "GameUXInstallHelper.dll" );
    UnUseDLL( WINSYSDIR ^ "OLE32.dll" );
    
    endif;
    
    end;
    

Intégration dans un package MSI

Voici une description générale des étapes requises pour appeler les API Games Explorer à l’aide d’actions personnalisées MSI :

  1. Ajoutez une propriété à la table de propriétés MSI appelée « RelativePathToGDF » contenant le chemin d’accès relatif au fichier binaire GDF.
  2. Après l’action CostFinalize, appelez la fonction DLL GameUXInstallHelper SetMSIGameExplorerProperties dans une action personnalisée immédiate pour définir les propriétés MSI appropriées pour les autres actions personnalisées.
  3. Lors de l’installation, déclenchez une action personnalisée différée après l’action InstallFiles qui appelle la fonction DLL GameUXInstallHelper AddToGameExplorerUsingMSI. Si l’installation concerne tous les utilisateurs, l’action personnalisée doit définir l’indicateur msidbCustomActionTypeNoImpersonate ; sinon, il ne doit pas définir cet indicateur. Par conséquent, deux actions personnalisées presque identiques sont définies : GameUXAddAsAdmin et GameUXAddAsCurUser.
  4. Lors de la suppression de l’installation, déclenchez une action personnalisée différée avant l’action RemoveFiles qui appelle la fonction DLL GameUXInstallHelper RemoveFromGameExplorerUsingMSI. Si l’installation était pour tous les utilisateurs, l’action personnalisée doit définir l’indicateur msidbCustomActionTypeNoImpersonate ; sinon, il ne doit pas définir cet indicateur. Par conséquent, deux actions personnalisées presque identiques sont définies : GameUXRemoveAsAdmin et GameUXRemoveAsCurUser.
  5. Définissez les actions personnalisées de restauration pour gérer le cas où l’utilisateur annule l’installation ou la suppression après l’une de ces actions personnalisées. Cela entraîne 4 actions personnalisées supplémentaires : GameUXRollBackAddAsAdmin, GameUXRollBackAddAsCurUser, GameUXRollBackRemoveAsAdmin et GameUXRollBackRemoveAsCurUser.

Cette procédure est décrite en détail dans les instructions suivantes, qui décrivent un processus qui peut être effectué à l’aide d’un éditeur MSI, tel que l’éditeur Orca trouvé dans le Kit de développement logiciel (SDK) de plateforme. Certains éditeurs MSI ont des Assistants qui simplifient certaines de ces étapes de configuration.

Pour configurer un package MSI pour l’intégration à Games Explorer

  1. Ouvrez le package MSI dans Orca.

  2. Ajoutez la ligne indiquée dans le tableau suivant à la table Binaire dans le package MSI.

    Nom Données
    GAMEUX chemin d’accès au fichier DLL\GameUXInstallHelper.dll

     

    Note

    Ce fichier sera incorporé dans le package MSI. Vous devez donc effectuer cette étape chaque fois que vous recompilez GameUXInstallHelper.dll.

     

  3. Ajoutez les lignes indiquées dans le tableau suivant au tableau CustomAction table dans le package MSI.

    Action Type Source Cible
    GameUXSetMSIProperties msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue = 65 GAMEUX SetMSIGameExplorerProperties
    GameUXAddAsAdmin msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3137 GAMEUX AddToGameExplorerUsingMSI
    GameUXAddAsCurUser msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript = 1089 GAMEUX AddToGameExplorerUsingMSI
    GameUXRollBackAddAsAdmin msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3393 GAMEUX RemoveFromGameExplorerUsingMSI
    GameUXRollBackAddAsCurUser msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript = 1345 GAMEUX RemoveFromGameExplorerUsingMSI
    GameUXRemoveAsAdmin msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3137 GAMEUX RemoveFromGameExplorerUsingMSI
    GameUXRemoveAsCurUser msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript = 1089 GAMEUX RemoveFromGameExplorerUsingMSI
    GameUXRollBackRemoveAsAdmin msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3393 GAMEUX AddToGameExplorerUsingMSI
    GameUXRollBackRemoveAsCurUser msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript = 1345 GAMEUX AddToGameExplorerUsingMSI

     

  4. Ajoutez les valeurs affichées pour Action, Condition et Sequence dans le tableau suivant à la table InstallExecuteSequence dans le package MSI.

    Action Condition Séquence Notes
    GameUXSetMSIProperties 1015 Le numéro de séquence place l’action peu après CostFinalize.
    GameUXAddAsAdmin NON installé ET ALLUSERS 4003 Cette action personnalisée se produit uniquement lors d’une nouvelle installation pour tous les utilisateurs. Le numéro de séquence place l’action après InstallFiles et après les restaurations.
    GameUXAddAsCurUser NON INSTALLÉ ET NON PAS TOUS LES UTILISATEURS 4004 Cette action personnalisée se produit uniquement lors d’une nouvelle installation pour l’utilisateur actuel uniquement. Le numéro de séquence place l’action après InstallFiles et après les restaurations.
    GameUXRollBackAddAsAdmin NON installé ET ALLUSERS 4001 Cette action personnalisée se produit uniquement lorsqu’une nouvelle installation pour tous les utilisateurs est annulée. Le numéro de séquence place l’action après InstallFiles et avant l’action Ajouter personnalisée.
    GameUXRollBackAddAsCurUser NON INSTALLÉ ET NON PAS TOUS LES UTILISATEURS 4002 Cette action personnalisée se produit uniquement lorsqu’une nouvelle installation pour l’utilisateur actuel est annulée uniquement. Le numéro de séquence place l’action après InstallFiles et avant l’action Ajouter personnalisée.
    GameUXRemoveAsAdmin REMOVE~="ALL » ET ALLUSERS 3452 Cette action personnalisée se produit uniquement lors de la suppression pour tous les utilisateurs. Le numéro de séquence place l’action directement avant RemoveFiles et après les restaurations.
    GameUXRemoveAsCurUser REMOVE~="ALL » ET NOT ALLUSERS 3453 Cette action personnalisée se produit uniquement lors de la suppression de l’utilisateur actuel. Le numéro de séquence place l’action directement avant RemoveFiles et après les restaurations.
    GameUXRollBackRemoveAsAdmin REMOVE~="ALL » ET ALLUSERS 3450 Cette action personnalisée se produit uniquement lorsque la suppression de tous les utilisateurs est annulée. Le numéro de séquence place l’action directement avant RemoveFiles et avant l’action Supprimer personnalisée.
    GameUXRollBackRemoveAsCurUser REMOVE~="ALL » ET NOT ALLUSERS 3451 Cette action personnalisée se produit uniquement lorsque la suppression de l’utilisateur actuel est annulée. Le numéro de séquence place l’action directement avant RemoveFiles et avant l’action Supprimer personnalisée.

     

  5. Ajoutez la ligne indiquée dans le tableau suivant à la table Property dans le package MSI.

    Propriété Valeur
    RelativePathToGDF chemin d’accès de fichier relatif\nme de fichier binaire qui contient le GDF

     

    Note

    L’emplacement spécifié par le chemin d’accès est relatif à l’emplacement spécifié par le chemin d’installation. Par exemple, bin\GDF.dll.

     

  6. Enregistrez le package MSI.

Pour plus d’informations sur les packages MSI et Windows Installer, consultez Windows Installer.

Conseils de débogage

Voici quelques conseils pour vous aider à déboguer des problèmes lors de l’appel des API Games Explorer :

Tester avec un exemple de code

La création de l’exemple de solution GameUXInstallHelper crée un GameUXInstallHelper.dll et un GDFInstall.exe. Le GDFInstall.exe est un exemple d’application qui utilise GameUXInstallHelper.dll. L’exécution de GDFInstall.exe vous invite si vous souhaitez installer ou supprimer un fichier binaire GDF de l’Explorateur de jeux. Vous pouvez tester votre fichier binaire GDF en le transmettant en tant que premier argument de ligne de commande pour GDFInstall.exe.

Si vous n’avez pas de fichier binaire GDF ou si vous ne parvenez pas à l’installer, essayez d’utiliser l’exemple GDF dans le Kit de développement logiciel (SDK) DirectX. L’exemple GDFExampleBinary se trouve dans le Kit de développement logiciel (SDK) DirectX et n’est qu’une DLL qui contient uniquement un fichier GDF. Également inclus dans la source est son projet GDFMaker. Vous pouvez le générer et le tester à l’aide de GDFInstall.exe. Vous pouvez également comparer son code XML au vôtre pour identifier exactement où se trouve le problème.

Assurez-vous que votre jeu a été supprimé correctement

Si le jeu est déjà installé dans l’Explorateur de jeux, les appels suivants à IGameExplorer ::AddGame retournent E_FAIL afin de vous assurer que votre jeu n’est pas installé avant le test. Cela s’applique également si vous installez le GDF uniquement pour l’utilisateur actuel, puis essayez d’installer le GDF pour tous les utilisateurs. Vous devez d’abord supprimer le jeu des utilisateurs actuels avant que IGameExplorer ::AddGame réussisse.

Si vous exécutez GDFInstall.exe énumération, l’exemple d’application entrera en mode différent qui énumère tous les jeux Games Explorer installés et vous invite à les supprimer. Vous pouvez également parcourir et rechercher le Registre dans HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\GameUX pour vous assurer que votre jeu n’est pas installé pour un autre utilisateur sur le système. Toutefois, ne modifiez pas ces paramètres de Registre à d’autres fins, car ils ne sont pas garantis pour rester compatibles dans les futures versions du système d’exploitation.

Veillez à signer à l’aide d’Authenticode

Si vous avez fourni une évaluation, mais que vous ne la voyez pas dans l’Explorateur de jeux, vérifiez que vous avez utilisé Authenticode pour signer le fichier exécutable ou DLL qui contient l’évaluation. Games Explorer ignore les informations d’évaluation dans les fichiers non signés. Pour plus d’informations sur Authenticode, consultez Signature Authenticode pour les développeurs de jeux.

Assurez-vous que les contrôles parental sont disponibles

Vérifiez que vous testez les contrôles parental sur une édition de Windows Vista qui fournit des contrôles parental : Home Basic, Home Premium ou Ultimate. Windows Vista Business et Windows Vista Enterprise ne fournissent pas de contrôles parental. Toutefois, si vous effectuez des tests sur Windows Vista Ultimate et que l’ordinateur de test est joint à un domaine, vous devez modifier un paramètre de stratégie de groupe pour rendre visibles les contrôles parental. Pour ce faire, consultez Prise en main de Games Explorer.

Vérifier que les tâches sont du type correct

Si vous avez spécifié des tâches de support qui n’apparaissent pas dans l’Explorateur de jeux, vérifiez qu’elles sont toutes des liens Web. Toutes les autres tâches de raccourci doivent être créées en tant que tâches de lecture. Les tâches sont abordées plus haut dans cet article dans Tâches de l’Explorateur jeux.

Vérifier les données dans le fichier binaire GDF

GDFTrace.exe est un outil trouvé dans le Kit de développement logiciel (SDK) DirectX. Vous pouvez exécuter GDFTrace.exe sur votre fichier binaire GDF et générera toutes les métadonnées GDF contenues dans le fichier binaire pour chaque langage pris en charge pour la validation rapide. Il affiche également les avertissements relatifs aux informations manquantes ou obsolètes.

Résumé

L’Explorateur de jeux dans Windows Vista offre un moyen facile et personnalisable de présenter votre jeu aux utilisateurs de Windows Vista, mais il vous oblige également à inscrire le jeu auprès du système pendant le processus d’installation. L’exemple GameUXInstallHelper simplifie considérablement ce processus pour les développeurs.