Сценарий
я используюВиндовс 10, но у меня та же проблема в других версиях Windows.
Я добавил пользовательский элемент в контекстное меню Windows. Он должен быть доступен по щелчку правой кнопкой мыши из папки каталога или из фона каталога.
Этот скрипт реестра воспроизводит мой пользовательский элемент контекстного меню (за исключением подкоманд):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\PATHS]
"MUIVerb"="PATHS"
"SubCommands"="PATHS.AddDirBackground;PATHS.RemoveDirBackground"
"Icon"="C:\\Program Files\\PATHS\\PATHS.Title.ico"
"Position"="bottom"
[HKEY_CLASSES_ROOT\Directory\Background\shell\PATHS]
"MUIVerb"="PATHS"
"SubCommands"="PATHS.AddDirBackground;PATHS.RemoveDirBackground"
"Icon"="C:\\Program Files\\PATHS\\PATHS.Title.ico"
"Position"="bottom"
Проблема
Проблема в том, что Windows, похоже, обрабатывает фон рабочего стола так же, как фон каталога, поэтому мой пользовательский элемент контекстного меню отображается, когда я щелкаю правой кнопкой мыши по фону рабочего стола:
Мне не нравится такое поведение, поскольку этот пункт контекстного меню бесполезен, если доступен из фона рабочего стола, он только увеличивает размер контекстного меню рабочего стола в целом.
Вопрос
Как я могу отключить отображение пункта контекстного меню в контекстном меню фона рабочего стола?
Обратите внимание, что это простой пункт контекстного меню, добавленный вручную через реестр, я не собираюсь перерабатывать реализацию через расширение оболочки.
Исследовать
В этой статье я увидел естественный метод или хак, позволяющий скрыть или отключить любой элемент контекстного меню:
Однако я не уверен, как это сделать и действительно ли это то, что мне нужно.
Я попытался добавить элемент-"призрак" наФон рабочего столаключ реестра, пытающийся переопределить исходный элемент, который у меня естьКаталог\Фонклавиша, но элемент все еще отображается, когда я щелкаю правой кнопкой мыши по фону рабочего стола:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DesktopBackground\shell\PATHS]
"MUIVerb"="PATHS"
"LegacyDisable"=""
Или:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DesktopBackground\shell\PATHS]
"MUIVerb"="PATHS"
"Extended"=""
С другой стороны, этот трюк работает нормально для исходных элементов, которые хранятся в разделах реестра, упомянутых выше, но этот трюк не работает для этого «призрачного» или «фиктивного» элемента, который я хочу скрыть из контекстного меню.