How to Change context menu of windows Explorer
i want to edit context menu of windows Explorer. and i want to create my own menu with sub menu as shown in image. and also do some task like copy and move to other destination. Can any one please show me how to do this with registry.
Is this possible or not? if it is possible please give me step by step answer.
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).
Simply i want to make sub-menu in context menu. and copy and move operation, and i want to display folders which i had created in my any drives. and also someone click on that folder it will perform copy operation.
Creating cascading menus
In Windows 7 and later you can create static menus directly through the registry.
Because
HKEY_CLASSES_ROOT
is a combination ofHKEY_CURRENT_USER
andHKEY_LOCAL_MACHINE
, you can register any custom verbs under theHKEY_CURRENT_USER\Software\Classes
subkey. The main advantage of doing so is that elevated permission is not required.Source: Creating Shortcut Menu Handlers
Registry template
Here's a per-user registry template you can use. Just paste it in a new text document, and apply the changes you need. Then save it as a .reg
file, and merge it to the registry. The custom menu will be added to all files and folders.
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"
Remarks
- The
AttributeMask
value specifies the SFGAO value of the bit values of the mask to test with.- The
AttributeValue
value specifies the SFGAO value of the bits that are tested.- The
ImpliedSelectionModel
specifies zero for item verbs, or nonzero for verbs on the background shortcut menu.Source: Creating Shortcut Menu Handlers
In the template above, the AttributeMask
and AttributeValue
are set to 0x00000001
and 0x00000002
, respectively. Those values are associated to the SFGAO_CANCOPY
and SFGAO_CANMOVE
constants, which determine whether the specified items can be copied/moved.
Further reading
- Creating Static Cascading Menus
- Creating Shortcut Menu Handlers