Come creare menu a cascata con la voce di registro ExtendedSubCommandsKey
In Windows 7 e versioni successive è possibile usare la sottochiave ExtendedSubCommandsKey per creare menu a catena estesi.
La schermata seguente è un esempio di menu a cascata esteso.
Poiché HKEY_CLASSES_ROOT è una combinazione di HKEY_CURRENT_USER e HKEY_LOCAL_MACHINE, è possibile registrare i subverbs nella sottochiave HKEY_CURRENT_USER\Software\Classi. Il vantaggio di farlo è che l'autorizzazione con privilegi elevati non è necessaria. Altre associazioni di file possono riutilizzare questo intero set di verbi specificando la stessa sottochiave ExtendedSubCommandsKey. Se non è necessario riutilizzare questo set di verbi, è possibile elencare i verbi sotto l'elemento padre. In questo caso, assicurarsi che il valore predefinito dell'elemento padre sia vuoto, come illustrato nell'esempio della voce del Registro di sistema in questa sezione.
Disposizioni
Passaggio 1:
Creare una sottochiave in HKEY_CLASSES_ROOT\ProgID\shell\CascadeMenuKey e assegnare a CascadeMenuKey un nome, ad esempio CascadeTest. Aggiungere quindi una voce MUIVerb di tipo REG_SZ e assegnargli un nome, ad esempio Test Cascade Menu 2, come illustrato nell'esempio del Registro di sistema seguente.
HKEY_CLASSES_ROOT
txtfile
shell
CascadeTest
MUIVerb = Test Cascade Menu 2
Passaggio 2:
Nella sottochiave CascadeTest creata, aggiungi una sottochiave ExtendedSubCommandsKey e quindi aggiungi i sottocomandi del documento (di tipo REG_SZ); per esempio:
HKEY_CLASSES_ROOT
txtfile
Shell
Test Cascade Menu 2
(Default)
ExtendedSubCommandsKey
Layout
Properties
Select all
Assicurarsi che il valore predefinito della sottochiave Menu a catena di test 2 sia vuoto e visualizzato come (valore non impostato).
Passaggio 3:
Popolare i sottoverbi usando una delle implementazioni di verbi statici seguenti. Si noti che la sottochiave CommandFlags rappresenta i valori EXPCMDFLAGS. Se si desidera aggiungere un separatore prima o dopo la voce di menu a catena, usare ECF_SEPARATORBEFORE (0x20) o ECF_SEPARATORAFTER (0x40). Per una descrizione di questi flag di Windows 7 e versioni successive, vedere IExplorerCommand::GetFlags. ECF_SEPARATORBEFORE funziona solo per le voci di menu di primo livello. MUIVerb è di tipo REG_SZe CommandFlags è di 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
Osservazioni
Il seguente screenshot è un'illustrazione degli esempi precedenti delle voci del Registro di sistema.