Каскадное меню и проблема со списками переходов в Проводнике файлов в Windows 10

Когда вы реализуете каскадные меню в папках файлов (каталог) с помощью разделов реестра SubCommands или ExtendedSubCommands в Windows 10, происходит интересная вещь. Последний пункт в вашем каскадном меню запускается, когда вы щелкаете правой кнопкой мыши ярлык Pinned File Explorer на панели задач и выбираете папку в списке переходов вместо открытия окна папки.

(Впервые об этой ошибке было сообщено на форуме Microsoft Questions, и вы можете увидеть мой ответ там. Как позже сообщили два других пользователя, я решил написать в блоге об этом.)

Пример файла REG для воспроизведения проблемы

Скопируйте следующее содержимое в Блокнот, сохраните как «mymenu.reg» и запустите его.

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"

Каскадное меню будет отображаться и прекрасно работать, если щелкнуть правой кнопкой мыши папку с файлом.

Ошибка: проблема возникает, когда вы щелкаете правой кнопкой мыши на закрепленном элементе Проводника на панели задач и выбираете папку в списке переходов. Вместо открытия окна папки выполняется последняя команда в вашем каскадном меню (в данном примере «Запустить обслуживание»). Это ошибка!

Обходной путь № 1

Реализация каскадного меню в разделе реестра «Папки» или «AllFileSystemObjects» не должна вызывать эту проблему. Однако при реализации в области реестра «Папки» или «AllFileSystemObjects» меню будет отображаться для виртуальных папок, таких как «Этот компьютер», «Корзина» и т. Д., А также для сжатых папок и файлов. Чтобы он не отображался для файлов, виртуальных папок и сжатых (заархивированных) папок, добавьте проверку, создав значение AppliesTo REG_SZ в вашем каскадном меню.

Установите значение AppliesTo для значения:

kind:file folder AND System.FileExtension:".zip"

Пересмотренные настройки реестра

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\CustomMenu] "Icon"="shell32.dll,39" "MUIVerb"="MyMenu" "SubCommands"="" "AppliesTo"="kind:file folder AND System.FileExtension:\".zip\"" [HKEY_CLASSES_ROOT\Folder\shell\CustomMenu\shell\menu1] "Icon"="c:\\windows\\system32\\cmd.exe,0" @="Command Prompt" [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" @="Run Maintenance (Batch File)" [HKEY_CLASSES_ROOT\Folder\shell\CustomMenu\shell\menu2\command] @="D:\\Tools\\maintenance.bat"

Обходной путь № 2

В примере файла REG в верхней части статьи включите третью команду меню, которая запускает Проводник% 1.

[HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu3\command]
@="explorer.exe \"%1\""

Но он всегда будет отображаться в вашем каскадном меню. Когда вы выбираете папку в Jumplist, этот пункт (последний в меню) выполняется.

Ссылка на основную публикацию
Adblock
detector