Partager via


Verbes et associations de fichiers

Lorsqu’un utilisateur clique avec le bouton droit sur un objet Shell tel qu’un fichier, l’interpréteur de commandes affiche un menu contextuel (contextuel). Ce menu contient une liste de commandes que l’utilisateur peut sélectionner pour effectuer différentes actions sur l’élément. Ces commandes sont également appelées éléments de menu contextuel ou verbes. Les menus contextuels peuvent être personnalisés.

Cette rubrique est organisée comme suit :

Présentation des menus contextuels pour les objets de système de fichiers

Étant donné que les menus contextuels sont souvent utilisés pour la gestion des fichiers, l’interpréteur de commandes fournit un ensemble de commandes par défaut, telles que Couper et Copier, qui apparaissent dans le menu contextuel de n’importe quel objet système de fichiers tel qu’un fichier ou un dossier.

L’exemple suivant illustre un menu contextuel par défaut qui s’affiche en cliquant avec le bouton droit sur MyFile.xyz-ms.

capture d’écran du menu contextuel par défaut

La raison pour laquelle un menu contextuel par défaut s’affiche pour MyFile.xyz-ms est dû au fait que .xyz-ms n’est pas membre d’un type de fichier inscrit. En revanche, .txt est un type de fichier inscrit. Si vous cliquez avec le bouton droit sur un fichier .txt, vous voyez un menu contextuel avec trois commandes supplémentaires dans sa section supérieure : Imprimer, Modifier et Ouvrir avec.

capture d’écran du menu contextuel d’un fichier avec un type de fichier inscrit

Pour étendre le menu contextuel d’un type de fichier, vous devez créer une entrée de Registre pour chaque commande. Une approche plus sophistiquée consiste à implémenter un gestionnaire de menu contextuel (verbe), ce qui vous permet d’étendre le menu contextuel d’un type de fichier sur une base de fichier par fichier. Pour plus d’informations, consultez Création de gestionnaires de menus contextuelset référence de menu contextuel.

Ajouter des commandes à un menu contextuel

Un gestionnaire de menus contextuels est un gestionnaire de types de fichiers qui ajoute des commandes à un menu contextuel existant. Les gestionnaires de menus contextuels sont associés à un type de fichier et sont appelés chaque fois qu’un menu contextuel s’affiche pour un membre de la classe. L’interpréteur de commandes vérifie le Registre pour voir si le type de fichier est associé à des gestionnaires de menus contextuels. Si c’est le cas, l’interpréteur de commandes interroge les gestionnaires pour obtenir des éléments de menu contextuel supplémentaires.

Verbes du menu contextuel

Chaque commande du menu contextuel est identifiée dans le Registre par son verbe. Ces verbes sont identiques à ceux utilisés par ShellExecuteEx lors du lancement d’applications par programmation.

Un verbe est une chaîne de texte simple utilisée par l’interpréteur de commandes pour identifier la commande associée. Chaque verbe correspond à la chaîne de commande utilisée pour lancer la commande dans une fenêtre de console ou un fichier de commandes (.bat).

Par exemple, le verbe ouvert lance normalement un programme pour ouvrir un fichier. La chaîne de commande se présente généralement comme suit :

"My Program.exe" "%1"

Si un élément de la chaîne de commande contient ou peut contenir des espaces, il doit être placé entre guillemets. Sinon, si l’élément contient un espace, il n’analyse pas correctement. Par exemple, « Mon Program.exe» démarre correctement l’application. Si vous utilisez Mon Program.exe sans guillemets, le système tente de lancer Mon avec Program.exe comme premier argument de ligne de commande. Vous devez toujours utiliser des guillemets avec des arguments tels que «%1» qui sont développés en chaînes par l’interpréteur de commandes, car vous ne pouvez pas être certain que la chaîne ne contiendra pas d’espace.

Les verbes peuvent également avoir un nom d’affichage associé, qui s’affiche dans le menu contextuel au lieu de la chaîne de verbe elle-même. Par exemple, la chaîne d’affichage pour openas est Open With. Comme les chaînes de menu normales, y compris un caractère d’ampersand dans la chaîne d’affichage, permet la sélection du clavier de la commande.

Diffusez en continu les éléments du système de fichiers et les résultats OpenSearch.

Dans Windows 7 et versions ultérieures, il existe une prise en charge de la connexion de sources externes au client Windows via le protocole OpenSearch. Cela permet aux utilisateurs de rechercher dans un magasin de données distant et d’afficher les résultats à partir de l’Explorateur Windows. La norme OpenSearch v1.1 définit des formats de fichiers simples qui peuvent être utilisés pour décrire comment un client doit interroger le service web pour le magasin de données et comment le service doit retourner les résultats à restituer par le client.

Vous devrez peut-être diffuser en continu des éléments non système de fichiers pour éviter d’avoir à télécharger des éléments dans le cas de OpenSearch résultats. La fonctionnalité de recherche fédérée permet de rechercher des éléments à partir d’emplacements de système de fichiers qui prennent en charge OpenSearch, tels que SharePoint et d’autres sites web soutenus par des services web, par exemple. Lors de l’appel de verbes sur ces éléments, le système télécharge une version temporaire de l’élément et le transmet à l’implémentation du verbe. Les implémenteurs de verbes sont encouragés à éviter la nécessité de télécharger le fichier en inscrivant l’ensemble de schémas d’URL pris en charge par le verbe pour diffuser en continu les éléments. Les verbes le font à l’aide des SupportedProtocols clé de Registre.

Inscrire une application pour gérer les types de fichiers arbitraires

La définition d’éléments de menu contextuel pour un type de fichier particulier vous permet de spécifier comment l’application associée ouvre un membre du type de fichier. Toutefois, les applications peuvent également inscrire une procédure par défaut distincte à utiliser lorsqu’un utilisateur tente d’utiliser l’application pour ouvrir un type de fichier qui n’est pas associé à l’application. Vous inscrivez la procédure par défaut de la même façon que vous inscrivez des éléments de menu contextuel. Pour plus d’informations sur la définition d’éléments de menu contextuel, consultez Création de gestionnaires de menus contextuels.

La procédure par défaut sert deux objectifs de base. Il s’agit de spécifier comment votre application doit être appelée pour ouvrir un type de fichier arbitraire. Par exemple, vous pouvez utiliser un indicateur de ligne de commande pour indiquer qu’un type de fichier inconnu est ouvert. L’autre objectif est de définir les différentes caractéristiques d’un type de fichier, telles que les éléments de menu contextuel et l’icône. Si un utilisateur associe votre application à un type de fichier supplémentaire, cette classe aura ces caractéristiques. Si le type de fichier supplémentaire a été précédemment associé à une autre application, ces caractéristiques remplacent les originaux.

Pour inscrire la procédure par défaut, placez les mêmes clés de Registre que celles que vous avez créées pour le ProgID de votre application sous la sous-clé de l’application de HKEY_CLASSES_ROOT\Applications. Vous pouvez également inclure une valeur FriendlyAppName pour fournir au système un nom convivial pour votre application. Le nom convivial de l’application peut également être extrait de son fichier exécutable, mais uniquement si la valeur FriendlyAppName est absente.

L’exemple d’entrée de Registre suivant illustre une procédure par défaut pour MyProgram.exe qui définit un nom convivial et plusieurs éléments de menu contextuel. Les chaînes de commande incluent l’indicateur /a pour avertir l’application qu’elle ouvre un type de fichier arbitraire. Si vous incluez une sous-clé DefaultIcon, vous devez utiliser une icône générique.

HKEY_CLASSES_ROOT
   MyProgram.exe
      shell
         open
            command
               (Default) = C:\MyDir\MyProgram.exe /a "%1"
         print
            command
               (Default) = C:\MyDir\MyProgram.exe /a /p "%1"
         printto
            command
               (Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2"

Ressources additionnelles

meilleures pratiques pour les gestionnaires de menus contextuels et les verbes de sélection multiple

Choisir un verbe statique ou dynamique pour votre menu contextuel

Création de gestionnaires de menus contextuels

personnaliser un menu contextuel à l’aide de verbes dynamiques

menus contextuels et gestionnaires de menus contextuels

Informations de référence sur le menu contextuel