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.
É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.