Elenco a cascata del menu a cascata e dell'Esploratore file Problema in Windows 10

Quando si implementano i menu a cascata nelle cartelle di file (directory) utilizzando le chiavi di registro dei comandi secondari o ExtendedSubCommands in Windows 10, accade una cosa interessante. L'ultimo elemento nel menu a cascata viene eseguito quando si fa clic con il pulsante destro del mouse sul collegamento Esplora file appuntato nella barra delle applicazioni e si fa clic su una cartella nell'elenco di salto, anziché l'apertura della finestra di una cartella.

( Questo bug è stato segnalato per la prima volta nel forum di Microsoft Answers e puoi vedere la mia risposta lì. Come è stato successivamente segnalato da altri due utenti, ho deciso di scrivere un post sul blog su questo. )

File REG di esempio per riprodurre il problema

Copia il seguente contenuto su Blocco note, salva come "mymenu.reg" ed eseguilo.

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"

$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"

Il menu a cascata verrà visualizzato e funzionerà perfettamente quando fai clic con il pulsante destro del mouse su una cartella di file.

Bug: il problema si verifica quando si fa clic con il pulsante destro del mouse sull'elemento File Explorer appuntato nella barra delle applicazioni e si fa clic su una cartella nel Jumplist. Invece di aprire una finestra della cartella, viene eseguito l'ultimo comando nel menu a cascata (in questo esempio "Esegui manutenzione"). Questo è un bug!

Soluzione alternativa n. 1

L'implementazione del menu a cascata nella chiave di registro "Cartelle" o "AllFileSystemObjects" non dovrebbe causare questo problema. Tuttavia, se implementato nell'area di cartelle Folders o AllFileSystemObjects, il menu verrebbe visualizzato per cartelle virtuali come questo PC, Cestino, ecc., Nonché per cartelle e file compressi. Per evitare che appaia per file, cartelle virtuali e cartelle compresse (zippate), aggiungi un segno di spunta creando il valore AppliesTo REG_SZ nel menu a cascata.

Imposta AppliesPer valutare i dati su:

 tipo: cartella file E System.FileExtension: ". zip" 

Impostazioni del registro riviste

 Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT \ Cartella \ shell \ CustomMenu] "Icon" = "shell32.dll, 39" "MUIVerb" = "MyMenu" "SubCommands" = "" "AppliesTo" = "tipo: cartella file AND System.FileExtension: \". zip \ "" [HKEY_CLASSES_ROOT \ Cartella \ shell \ CustomMenu \ shell \ menu1] "Icon" = "c: \\ windows \\ system32 \\ cmd.exe, 0" @ = "Prompt dei comandi" [HKEY_CLASSES_ROOT \ Cartella \ shell \ CustomMenu \ shell \ menu1 \ command] @ = "cmd.exe \"% 1 \ "" [HKEY_CLASSES_ROOT \ Folder \ shell \ CustomMenu \ shell \ menu2] "Icon" = "c: \\ windows \\ system32 \\ cmd.exe, 0 "@ =" Esegui manutenzione (file batch) "[HKEY_CLASSES_ROOT \ Cartella \ shell \ CustomMenu \ shell \ menu2 \ command] @ =" D: \\ Tools \\ maintenance.bat "

Soluzione alternativa n. 2

Nel file REG di esempio nella parte superiore dell'articolo, includere un terzo comando di menu che avvia Explorer% 1.

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

@ = "explorer.exe \"% 1 \ ""

Ma verrà sempre visualizzato nel menu a cascata. Quando si seleziona una cartella nella Lista jumplist, questa voce (ultima nel menu) viene eseguita.

Articoli Correlati