Gérer l’activation des fichiers

API importantes

Votre application peut s’inscrire pour devenir le gestionnaire par défaut d’un certain type de fichier. Les applications de bureau Windows et les applications plateforme Windows universelle (UWP) peuvent s’inscrire pour être un gestionnaire de fichiers par défaut. Si l’utilisateur choisit votre application comme gestionnaire par défaut pour un certain type de fichier, votre application est activée lorsque ce type de fichier est lancé.

Nous vous recommandons de vous inscrire uniquement pour un type de fichier si vous prévoyez de gérer tous les lancements de fichiers pour ce type de fichier. Si votre application doit uniquement utiliser le type de fichier en interne, vous n’avez pas besoin de vous inscrire pour être le gestionnaire par défaut. Si vous choisissez d’inscrire un type de fichier, vous devez fournir à l’utilisateur final les fonctionnalités attendues lorsque votre application est activée pour ce type de fichier. Par exemple, une application visionneuse d’images peut s’inscrire pour afficher un fichier .jpg. Pour plus d’informations sur les associations de fichiers, consultez Instructions pour les types de fichiers et les URI.

Ces étapes montrent comment s’inscrire à un type de fichier personnalisé, .alsdk et comment activer votre application lorsque l’utilisateur lance un fichier .alsdk.

Notez que dans les applications UWP, certaines URI et extensions de fichier sont réservées pour une utilisation par les applications intégrées et le système d’exploitation. Les tentatives d’inscription de votre application avec un URI réservé ou une extension de fichier sont ignorées. Pour plus d’informations, consultez les noms des schémas de fichier et d’URI réservés.

Étape 1 : Spécifier le point d’extension dans le manifeste du package

L’application reçoit des événements d’activation uniquement pour les extensions de fichier répertoriées dans le manifeste du package. Voici comment vous indiquez que votre application gère les fichiers avec l’extension .alsdk .

  1. Dans le Explorateur de solutions, double-cliquez sur package.appxmanifest pour ouvrir le concepteur de manifeste. Sélectionnez l’onglet Déclarations et, dans la liste déroulante Déclarations disponibles, sélectionnez Associations de types de fichiers, puis cliquez sur Ajouter. Pour plus d’informations sur les identificateurs utilisés par les associations de fichiers, consultez Identificateurs programmatiques.

    Voici une brève description de chacun des champs que vous pouvez remplir dans le concepteur de manifeste :

Champ Description
Nom d’affichage Spécifiez le nom complet d’un groupe de types de fichiers. Le nom complet est utilisé pour identifier le type de fichier dans les programmes par défaut définis sur le Panneau de configuration.
Logo Spécifiez le logo utilisé pour identifier le type de fichier sur le bureau et dans les programmes par défaut définis sur le Panneau de configuration. Si aucun logo n’est spécifié, le petit logo de l’application est utilisé.
Info-bulle Spécifiez l’info-bulle pour un groupe de types de fichiers. Ce texte d’info-bulle s’affiche lorsque l’utilisateur pointe sur l’icône d’un fichier de ce type.
Nom Choisissez un nom pour un groupe de types de fichiers qui partagent le même nom d’affichage, logo, info-bulle et indicateurs de modification. Choisissez un nom de groupe qui peut rester le même dans les mises à jour de l’application. Notez que le nom doit être en minuscules.
Type de contenu Spécifiez le type de contenu MIME, tel que image/jpeg, pour un type de fichier particulier. Remarque importante sur les types de contenu autorisés : voici une liste alphabétique de types de contenu MIME que vous ne pouvez pas entrer dans le manifeste du package, car ils sont réservés ou interdits : application/force-download, application/octet-stream, application/unknown, application/x-msdownload.
Type de fichier Spécifiez le type de fichier à inscrire, précédé d’un point, par exemple « .jpeg ». Types de fichiers réservés et interdits : consultez les noms de schémas d’URI réservés et les types de fichiers pour une liste alphabétique de types de fichiers pour les applications intégrées que vous ne pouvez pas inscrire pour vos applications UWP, car elles sont réservées ou interdites.
  1. Entrez alsdk comme Nom.
  2. Entrez .alsdk le type de fichier.
  3. Entrez « images\Icon.png » comme logo.
  4. Appuyez sur Ctrl+S pour enregistrer la modification apportée à package.appxmanifest.

Les étapes ci-dessus ajoutent un élément Extension comme celui-ci au manifeste du package. La catégorie windows.fileTypeAssociation indique que l’application gère les fichiers avec l’extension .alsdk .

      <Extensions>
        <uap:Extension Category="windows.fileTypeAssociation">
          <uap:FileTypeAssociation Name="alsdk">
            <uap:Logo>images\icon.png</uap:Logo>
            <uap:SupportedFileTypes>
              <uap:FileType>.alsdk</uap:FileType>
            </uap:SupportedFileTypes>
          </uap:FileTypeAssociation>
        </uap:Extension>
      </Extensions>

Étape 2 : Ajouter les icônes appropriées

Les applications qui deviennent la valeur par défaut d’un type de fichier ont leurs icônes affichées à différents endroits dans tout le système. Par exemple, ces icônes sont affichées dans :

  • Affichage éléments de l’Explorateur Windows, menus contextuels et ruban
  • Programmes par défaut Panneau de configuration
  • Sélecteur de fichiers
  • Résultats de la recherche sur l’écran de démarrage

Incluez une icône 44 x 44 avec votre projet afin que votre logo puisse apparaître dans ces emplacements. Faites correspondre l’apparence du logo de vignette de l’application et utilisez la couleur d’arrière-plan de votre application plutôt que de rendre l’icône transparente. Le logo s’étend jusqu’au bord sans le remplir. Testez vos icônes sur des arrière-plans blancs. Pour plus d’informations sur les icônes, consultez Instructions pour obtenir plus d’informations sur les icônes.

Étape 3 : Gérer l’événement activé

Le gestionnaire d’événements OnFileActivated reçoit tous les événements d’activation de fichier.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
       // TODO: Handle file activation
       // The number of files received is args.Files.Count
       // The name of the first file is args.Files[0].Name
}
Protected Overrides Sub OnFileActivated(ByVal args As Windows.ApplicationModel.Activation.FileActivatedEventArgs)
      ' TODO: Handle file activation
      ' The number of files received is args.Files.Size
      ' The name of the first file is args.Files(0).Name
End Sub
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs const& args)
{
    // TODO: Handle file activation.
    auto numberOfFilesReceived{ args.Files().Size() };
    auto nameOfTheFirstFile{ args.Files().GetAt(0).Name() };
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args)
{
    // TODO: Handle file activation
    // The number of files received is args->Files->Size
    // The name of the first file is args->Files->GetAt(0)->Name
}

Remarque

Lorsqu’il est lancé via le contrat de fichier, assurez-vous que le bouton Précédent ramène l’utilisateur à l’écran qui a lancé l’application et non au contenu précédent de l’application.

Nous vous recommandons de créer un frame XAML pour chaque événement d’activation qui ouvre une nouvelle page. De cette façon, le backstack de navigation pour le nouveau frame XAML ne contient aucun contenu précédent que l’application peut avoir sur la fenêtre actuelle lorsqu’elle est suspendue. Si vous décidez d’utiliser un cadre XAML unique pour lancer et pour les contrats de fichiers, vous devez effacer les pages du journal de navigation du frame avant de naviguer vers une nouvelle page.

Lorsque votre application est lancée via l’activation de fichier, vous devez envisager d’inclure l’interface utilisateur qui permet à l’utilisateur de revenir à la page supérieure de l’application.

Notes

Les fichiers que vous recevez peuvent provenir d’une source non approuvée. Nous vous recommandons de valider le contenu d’un fichier avant de prendre des mesures.

Exemple complet

Concepts

Tâches

Consignes

Référence