Problem mit den Sprunglisten für das kaskadierende Menü und den Datei-Explorer in Windows 10

Wenn Sie Cascading Menus in Dateiordnern (Verzeichnis) mithilfe der Registrierungsschlüssel SubCommands oder ExtendedSubCommands in Windows 10 implementieren, geschieht etwas Interessantes. Das letzte Element in Ihrem Cascading-Menü wird ausgeführt, wenn Sie in der Taskleiste mit der rechten Maustaste auf die Verknüpfung "Fixed File Explorer" klicken und auf einen Ordner in der Sprungliste klicken, anstatt ein Ordnerfenster zu öffnen.

( Dieser Fehler wurde zuerst im Microsoft Answers-Forum gemeldet, und Sie können meine Antwort dort sehen. Da er später von zwei anderen Benutzern gemeldet wurde, habe ich beschlossen, einen Blog-Beitrag dazu zu schreiben. )

Beispiel einer REG-Datei zum Reproduzieren des Problems

Kopieren Sie den folgenden Inhalt in Notepad, speichern Sie ihn als "mymenu.reg" und führen Sie ihn aus.

$config[ads_text6] not found
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\directory\shell\CustomMenu] "Icon"="shell32.dll, 39" "MUIVerb"="MyMenu" "SubCommands"="" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu1] "Icon"="c:\\windows\\system32\\cmd.exe, 0" @="Command Prompt" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu1\command] @="cmd.exe \"%1\"" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu2] "Icon"="c:\\windows\\system32\\cmd.exe, 0" @="Run Maintenance (Batch File)" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu2\command] @="D:\\Tools\\maintenance.bat"

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\directory\shell\CustomMenu] "Icon"="shell32.dll, 39" "MUIVerb"="MyMenu" "SubCommands"="" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu1] "Icon"="c:\\windows\\system32\\cmd.exe, 0" @="Command Prompt" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu1\command] @="cmd.exe \"%1\"" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu2] "Icon"="c:\\windows\\system32\\cmd.exe, 0" @="Run Maintenance (Batch File)" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu2\command] @="D:\\Tools\\maintenance.bat"

Das Kaskadenmenü wird angezeigt und funktioniert einwandfrei, wenn Sie mit der rechten Maustaste auf einen Dateiordner klicken.

Fehler: Das Problem tritt auf, wenn Sie mit der rechten Maustaste auf das angeheftete Element des Datei-Explorers in der Taskleiste klicken und auf einen Ordner in der Jumplist klicken. Anstatt ein Ordnerfenster zu öffnen, wird der letzte Befehl in Ihrem Cascading-Menü (in diesem Beispiel "Run Maintenance") ausgeführt. Das ist ein Fehler!

Problemumgehung Nr. 1

Das Implementieren des Cascading-Menüs unter dem Registrierungsschlüssel "Folders" oder "AllFileSystemObjects" sollte dieses Problem nicht verursachen. Bei der Implementierung im Registrierungsbereich Ordner oder AllFileSystemObjects wird das Menü jedoch für virtuelle Ordner wie Dieser PC, Papierkorb usw. sowie für komprimierte Ordner und Dateien angezeigt. Um zu verhindern, dass es für Dateien, virtuelle Ordner und komprimierte (komprimierte) Ordner angezeigt wird, fügen Sie eine Prüfung hinzu, indem Sie den Wert AppliesTo REG_SZ in Ihrem Cascading-Menü erstellen.

Setzen Sie AppliesTo-Wertdaten auf:

 Art: Dateiordner UND System.FileExtension: ". zip" 

Überarbeitete Registrierungseinstellungen

 Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT \ Folder \ shell \ CustomMenu] "Icon" = "shell32.dll, 39" "MUIVerb" = "MyMenu" "SubCommands" = "" AppliesTo "=" kind: Dateiordner AND System.FileExtension: \ ". zip \ "" [HKEY_CLASSES_ROOT \ Folder \ shell \ CustomMenu \ shell \ menu1] "Icon" = "c: \\ windows \\ system32 \\ cmd.exe, 0" @ = "Eingabeaufforderung" [HKEY_CLASSES_ROOT \ Folder \ shell \ CustomMenu \ shell \ menu1 \ command] @ = "cmd.exe \"% 1 \ "" [HKEY_CLASSES_ROOT \ Folder \ shell \ CustomMenu \ shell \ menu2] "Icon" = "c: \\ windows \\ system32 \\ cmd.exe, 0 "@ =" Wartung ausführen (Batchdatei) "[HKEY_CLASSES_ROOT \ Ordner \ Shell \ CustomMenu \ Shell \ Menü2 \ Befehl] @ =" D: \\ Tools \\ Maintenance.bat "

Problemumgehung Nr. 2

Fügen Sie in die Beispiel-REG-Datei oben im Artikel einen dritten Menübefehl ein, mit dem Explorer% 1 gestartet wird.

 [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu3\command]

@ = "explorer.exe"% 1 "

Es wird jedoch immer in Ihrem Cascading-Menü angezeigt. Wenn Sie einen Ordner in der Jumplist auswählen, wird dieses Element (zuletzt im Menü) ausgeführt.

Ähnlicher Artikel