Cómo crear menús en cascada con la entrada del Registro ExtendedSubCommandsKey
En Windows 7 y versiones posteriores, puedes usar la subclave ExtendedSubCommandsKey para crear menús en cascada extendidos.
La siguiente captura de pantalla es un ejemplo de un menú en cascada extendido.
Dado que HKEY_CLASSES_ROOT es una combinación de HKEY_CURRENT_USER y HKEY_LOCAL_MACHINE, puede registrar los subversos en la subclave HKEY_CURRENT_USER\Clases desoftware\. La ventaja de hacerlo es que no se requiere el permiso con privilegios elevados. Otras asociaciones de archivos pueden reutilizar este conjunto completo de verbos especificando la misma subclave ExtendedSubCommandsKey . Si no necesita reutilizar este conjunto de verbos, puede enumerar los verbos bajo el elemento primario. En este caso, asegúrese de que el valor predeterminado del elemento primario está vacío, como se muestra en el ejemplo de entrada del Registro de esta sección.
Instrucciones
Paso 1:
Cree una subclave en HKEY_CLASSES_ROOT\shell\ deProgID\CascadeMenuKey y asigne a CascadeMenuKey un nombre como CascadeTest, por ejemplo. A continuación, agregue una entrada MUIVerb de REG_SZ tipo y asígnele un nombre como Test Cascade Menu 2, como se muestra en el siguiente ejemplo del Registro.
HKEY_CLASSES_ROOT
txtfile
shell
CascadeTest
MUIVerb = Test Cascade Menu 2
Paso 2:
En la subclave CascadeTest que ha creado, agregue una subclave ExtendedSubCommandsKey y, a continuación, agregue los subcomandos del documento (de tipo REG_SZ); por ejemplo:
HKEY_CLASSES_ROOT
txtfile
Shell
Test Cascade Menu 2
(Default)
ExtendedSubCommandsKey
Layout
Properties
Select all
Asegúrese de que el valor predeterminado de la subclave Test Cascade Menu 2 está vacío y se muestra como (valor no establecido).
Paso 3:
Rellene los subversos mediante cualquiera de las siguientes implementaciones de verbo estáticos. Tenga en cuenta que la subclave CommandFlags representa valores EXPCMDFLAGS. Si desea agregar un separador antes o después del elemento de menú en cascada, use ECF_SEPARATORBEFORE (0x20) o ECF_SEPARATORAFTER (0x40). Para obtener una descripción de estas marcas de Windows 7 y posteriores, consulta IExplorerCommand::GetFlags. ECF_SEPARATORBEFORE solo funciona para los elementos de menú de nivel superior. MUIVerb es de tipo REG_SZ y CommandFlags es de tipo 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
Comentarios
La siguiente captura de pantalla es una ilustración de los ejemplos de entrada de clave del Registro anteriores.