Freigeben über


Erstellen kaskadierender Menüs mit dem Registrierungseintrag ExtendedSubCommandsKey

In Windows 7 und höher können Sie den Unterschlüssel ExtendedSubCommandsKey verwenden, um erweiterte kaskadierende Menüs zu erstellen.

Der folgende Screenshot ist ein Beispiel für ein erweitertes kaskadierendes Menü.

Screenshot: Erweitertes kaskadierendes Menü für Geräte

Da HKEY_CLASSES_ROOT eine Kombination aus HKEY_CURRENT_USER und HKEY_LOCAL_MACHINE ist, können Sie die Subverbs unter dem Unterschlüssel HKEY_CURRENT_USER\Softwareklassen\ registrieren. Der Vorteil ist, dass keine erhöhte Berechtigung erforderlich ist. Andere Dateizuordnungen können diesen gesamten Verbensatz wiederverwenden, indem sie denselben ExtendedSubCommandsKey-Unterschlüssel angeben. Wenn Sie diesen Verbensatz nicht wiederverwenden müssen, können Sie die Verben unter dem übergeordneten Element auflisten. Stellen Sie in diesem Fall sicher, dass der Standardwert des übergeordneten Elements leer ist, wie im Registrierungseintragsbeispiel in diesem Abschnitt veranschaulicht.

Anweisungen

Schritt 1:

Erstellen Sie einen Unterschlüssel unter HKEY_CLASSES_ROOT\ProgID-Shell\\CascadeMenuKey, und geben Sie dem CascadeMenuKey einen Namen, z. B. CascadeTest. Fügen Sie dann einen MUIVerb-Eintrag REG_SZ Typs hinzu, und geben Sie ihm einen Namen wie Test Cascade Menu 2, wie im folgenden Registrierungsbeispiel veranschaulicht.

HKEY_CLASSES_ROOT
   txtfile
      shell
         CascadeTest
            MUIVerb = Test Cascade Menu 2

Schritt 2:

Fügen Sie unter dem von Ihnen erstellten CascadeTest-Unterschlüssel einen ExtendedSubCommandsKey-Unterschlüssel hinzu, und fügen Sie dann die Dokumentunterbefehle (vom Typ REG_SZ) hinzu. Zum Beispiel:

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

Stellen Sie sicher, dass der Standardwert des Unterschlüssels "Test Cascade Menu 2 " leer ist und als (Wert nicht festgelegt) angezeigt wird.

Schritt 3:

Füllen Sie die Subverbs mit einer der folgenden statischen Verbimplementierungen auf. Beachten Sie, dass der CommandFlags-Unterschlüssel EXPCMDFLAGS-Werte darstellt. Wenn Sie vor oder nach dem Kaskadenmenüelement ein Trennzeichen hinzufügen möchten, verwenden Sie ECF_SEPARATORBEFORE (0x20) oder ECF_SEPARATORAFTER (0x40). Eine Beschreibung dieser Windows 7- und höher-Flags finden Sie unter IExplorerCommand::GetFlags. ECF_SEPARATORBEFORE funktioniert nur für die Menüelemente der obersten Ebene. MUIVerb ist vom Typ REG_SZ und CommandFlags vom Typ 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

Bemerkungen

Der folgende Screenshot zeigt die vorherigen Beispiele für Registrierungsschlüsseleingaben.

Screenshot eines Beispiels für ein kaskadierendes Menü mit Optionen für Editor und Wordpad