Verbes et associations de fichiers

Quand un utilisateur clique avec le bouton droit sur un objet Shell, tel qu’un fichier, le shell affiche un menu contextuel (contexte). Ce menu contient une liste de commandes que l’utilisateur peut sélectionner pour effectuer diverses 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

Comme 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 pour tout objet de 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 due 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 de .txt , un menu contextuel s’affiche 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), qui vous permet d’étendre le menu contextuel pour un type de fichier fichier par fichier. Pour plus d’informations, consultez création de gestionnaires de menus contextuelset Référence du menu contextuel.

Ajouter des commandes à un menu contextuel

Un gestionnaire de menu contextuel est un gestionnaire de type de fichier 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 est affiché pour un membre de la classe. L’interpréteur de commandes vérifie le registre pour voir si le type de fichier est associé à n’importe quel gestionnaire de menu contextuel. Si c’est le cas, l’interpréteur de commandes interroge les gestionnaires pour obtenir d’autres éléments de menu contextuel.

Verbes de menu contextuel

Chaque commande du menu contextuel est identifiée dans le registre par son verbe. Ces verbes sont les mêmes que ceux utilisés par ShellExecuteEx lors du lancement d’applications par programme.

Un verbe est une chaîne de texte simple qui est 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 Open 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 ne sera pas analysé correctement. Par exemple, « My Program.exe » démarre l’application correctement. Si vous utilisez la Program.exe sans guillemets, le système tente de lancer My avec Program.exe comme premier argument de ligne de commande. Vous devez toujours utiliser des guillemets avec des arguments tels que « %1» développés pour les 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 être associés à un nom d’affichage, qui est affiché 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 ouverte avec. Comme les chaînes de menu normales, y compris un caractère perluète dans la chaîne d’affichage, permet de sélectionner le clavier de la commande.

diffuser en continu des éléments de système Non-fichier et des résultats de 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 Windows Explorer. la norme OpenSearch v 1.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 à afficher par le client.

vous devrez peut-être diffuser en continu des éléments de système non-fichier pour éviter de devoir télécharger des éléments en cas de OpenSearch résultats. la fonctionnalité de recherche fédérée permet de rechercher des éléments à partir d’emplacements autres que les systèmes de fichiers qui prennent en charge OpenSearch, comme SharePoint et d’autres sites 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 passe à l’implémentation du verbe. Les implémenteurs de verbes sont encouragés pour éviter de devoir télécharger le fichier en inscrivant l’ensemble de schémas d’URL que le verbe prend en charge pour diffuser les éléments. Les verbes le font à l’aide de la clé de Registre SupportedProtocols .

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

Définir des é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 à peu près de la même façon que vous enregistrez les éléments de menu contextuel. Pour plus d’informations sur la définition des éléments de menu contextuel, consultez création de gestionnaires de menus contextuels.

La procédure par défaut remplit deux fonctions de base. La première consiste à spécifier la manière dont votre application doit être appelée pour ouvrir un type de fichier arbitraire. Vous pouvez, par exemple, utiliser un indicateur de ligne de commande pour indiquer qu’un type de fichier inconnu est en cours d’ouverture. 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 des _ _ \ applications racines de la classe HKEY. 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 notifier l’application qu’il 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 supplémentaires

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

Choix d’un verbe statique ou dynamique pour votre menu contextuel

Création de gestionnaires de menu contextuel

Personnalisation d’un menu contextuel à l’aide de verbes dynamiques

Menus contextuels (menu contextuel) et gestionnaires de menus contextuels

Référence du menu contextuel