Condividi tramite


Come creare menu a catena con la voce del Registro di sistema ExtendedSubCommandsKey

In Windows 7 e versioni successive è possibile usare la sottochiave ExtendedSubCommandsKey per creare menu a catena estesi.

Lo screenshot seguente è un esempio di menu a cascata esteso.

schermata che mostra il menu a cascata esteso per i dispositivi

Poiché HKEY_CLASSES_ROOT è una combinazione di HKEY_CURRENT_USER e HKEY_LOCAL_MACHINE, è possibile registrare i sottoverbs nella sottochiave HKEY_CURRENT_USER\classi software\. 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 di voce del Registro di sistema in questa sezione.

Istruzioni

Passaggio 1:

Creare una sottochiave in HKEY_CLASSES_ROOT\Shell\ProgID\CascadeMenuKey e assegnare un nome a CascadeMenuKey, 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 aggiungere una sottochiave ExtendedSubCommandsKey e quindi aggiungere le sottocomande 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 Test Cascade Menu 2 sia vuoto e visualizzato come (valore non impostato).

Passaggio 3:

Popolare i subverbs usando una delle implementazioni dei verbi statici seguenti. Si noti che la sottochiave CommandFlags rappresenta i valori EXPCMDFLAGS. Se si vuole 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_SZ e 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

Commenti

La schermata seguente è un'illustrazione degli esempi di voci di chiave del Registro di sistema precedenti.

screenshot che mostra un esempio di menu a cascata che mostra le scelte del blocco note e del wordpad