2

Я хочу редактировать контекстное меню Windows Explorer. и я хочу создать свое собственное меню с подменю, как показано на рисунке. а также сделать некоторые задачи, такие как копирование и перемещение в другое место назначения. Может кто-нибудь, пожалуйста, покажите мне, как это сделать с реестром.

Это возможно или нет? если это возможно, пожалуйста, дайте мне пошаговый ответ.

Folder/file 
 -->Right click
    -->List of menu(Open,copy,send to,My menu name)
       -->My menu name ->(Copy,Move) 
          -->copy -->list of "fixed" folders or destination names
                     (They are already in my Hard disk) 
                     (On click on it it will perform copy operation).

Просто я хочу сделать подменю в контекстном меню. и копирование и перемещение, и я хочу отобразить папки, которые я создал на любых дисках. а также кто-то нажимает на эту папку, он будет выполнять операцию копирования. новое меню

1 ответ1

4

Создание каскадных меню

В Windows 7 и более поздних версиях вы можете создавать статические меню непосредственно через реестр.

Поскольку HKEY_CLASSES_ROOT является комбинацией HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE , вы можете зарегистрировать любые пользовательские глаголы в разделе HKEY_CURRENT_USER\Software\Classes . Основным преимуществом этого является то, что повышенное разрешение не требуется.

Источник: Создание обработчиков контекстного меню

Шаблон реестра

Вот шаблон реестра для каждого пользователя, который вы можете использовать. Просто вставьте его в новый текстовый документ и примените необходимые изменения. Затем сохраните его как файл .reg и объедините его с реестром. Пользовательское меню будет добавлено ко всем файлам и папкам.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu]
"MUIVerb"="My menu name"
"Position"="Bottom"
"SubCommands"=""

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu\shell\cmd1]
@="Copy"
"AttributeMask"=dword:00000001
"AttributeValue"=dword:00000001
"ImpliedSelectionModel"=dword:00000000
"MUIVerb"="@shell32.dll,-31246"

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu\shell\cmd1\command]
@="copy command here"

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu\shell\cmd2]
@="Move"
"AttributeMask"=dword:00000002
"AttributeValue"=dword:00000002
"ImpliedSelectionModel"=dword:00000000
"MUIVerb"="@shell32.dll,-4145"

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu\shell\cmd2\command]
@="move command here"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu]
"MUIVerb"="My menu name"
"Position"="Bottom"
"SubCommands"=""

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu\shell\cmd1]
@="Copy"
"AttributeMask"=dword:00000001
"AttributeValue"=dword:00000001
"ImpliedSelectionModel"=dword:00000000
"MUIVerb"="@shell32.dll,-31246"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu\shell\cmd1\command]
@="copy command here"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu\shell\cmd2]
@="Move"
"AttributeMask"=dword:00000002
"AttributeValue"=dword:00000002
"ImpliedSelectionModel"=dword:00000000
"MUIVerb"="@shell32.dll,-4145"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu\shell\cmd2\command]
@="move command here"

замечания

  • Значение AttributeMask указывает значение SFGAO для битовых значений маски для проверки.
  • Значение AttributeValue указывает значение SFGAO проверяемых битов.
  • ImpliedSelectionModel указывает ноль для глаголов элемента или ненулевое значение для глаголов в контекстном меню фона.

Источник: Создание обработчиков контекстного меню

В приведенном выше шаблоне AttributeMask и AttributeValue установлены в 0x00000001 и 0x00000002 соответственно. Эти значения связаны с SFGAO_CANCOPY и SFGAO_CANMOVE , которые определяют, можно ли копировать / перемещать указанные элементы.

дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .