Partager via


Comment créer des menus en cascade avec l’entrée de Registre ExtendedSubCommandsKey

Dans Windows 7 et versions ultérieures, vous pouvez utiliser la sous-clé ExtendedSubCommandsKey pour créer des menus en cascade étendus.

La capture d’écran suivante est un exemple de menu en cascade étendu.

capture d’écran montrant un menu étendu en cascade pour les appareils

Étant donné que HKEY_CLASSES_ROOT est une combinaison de HKEY_CURRENT_USER et de HKEY_LOCAL_MACHINE, vous pouvez inscrire les sous-listes sous la sous-cléClassesde logiciels\HKEY_CURRENT_USER\. L’avantage de cette opération est que l’autorisation avec élévation de privilèges n’est pas requise. D’autres associations de fichiers peuvent réutiliser l’ensemble de cet ensemble de verbes en spécifiant la même sous-clé ExtendedSubCommandsKey . Si vous n’avez pas besoin de réutiliser cet ensemble de verbes, vous pouvez lister les verbes sous le parent. Dans ce cas, vérifiez que la valeur par défaut du parent est vide, comme illustré dans l’exemple d’entrée de Registre de cette section.

Instructions

Étape 1 :

Créez une sous-clé sous HKEY_CLASSES_ROOT\interpréteur de commandes\ProgID\CascadeMenuKey et attribuez à CascadeMenuKey un nom tel que CascadeTest, par exemple. Ajoutez ensuite une entrée MUIVerb de REG_SZ type et attribuez-lui un nom tel que Test Cascade Menu 2, comme illustré dans l’exemple de Registre suivant.

HKEY_CLASSES_ROOT
   txtfile
      shell
         CascadeTest
            MUIVerb = Test Cascade Menu 2

Étape 2 :

Sous la sous-clé CascadeTest que vous avez créée, ajoutez une sous-clé ExtendedSubCommandsKey , puis ajoutez les sous-commandes de document (de type REG_SZ) ; par exemple :

HKEY_CLASSES_ROOT
   txtfile
      Shell
         Test Cascade Menu 2
            (Default)
            ExtendedSubCommandsKey
               Layout
               Properties
               Select all

Vérifiez que la valeur par défaut de la sous-clé Menu Cascade de test 2 est vide et affichée comme (valeur non définie).

Étape 3 :

Remplissez les sous-groupes à l’aide de l’une des implémentations de verbes statiques suivantes. Notez que la sous-clé CommandFlags représente les valeurs EXPCMDFLAGS. Si vous souhaitez ajouter un séparateur avant ou après l’élément de menu en cascade, utilisez ECF_SEPARATORBEFORE (0x20) ou ECF_SEPARATORAFTER (0x40). Pour obtenir une description de ces indicateurs Windows 7 et versions ultérieures, consultez IExplorerCommand::GetFlags. ECF_SEPARATORBEFORE fonctionne uniquement pour les éléments de menu de niveau supérieur. MUIVerb est de type REG_SZ et CommandFlags est de type REG_DWORD.

HKEY_CLASSES_ROOT
   txtile
      Shell
         Test Cascade Menu 2
            (Default)
            ExtendedSubCommandsKey
               Shell
                  cmd1
                     MUIVerb = Notepad
                     command
                        (Default) = %SystemRoot%\system32\notepad.exe %1
                  cmd2
                     MUIVerb = Wordpad
                     CommandFlags = 0x20
                     command
                        (Default) = C:\Program Files\Windows NT\Accessories\wordpad.exe %1

Notes

La capture d’écran suivante est une illustration des exemples précédents d’entrée de clé de Registre.

capture d’écran montrant un exemple de menu en cascade montrant les choix de bloc-notes et de bloc-notes