Unhide Windows 7 context menu extras permanently

16

5

In Windows 7, when you hold down Shift when right-clicking in Windows Explorer, extra items such as "Copy as path", "Open command window here", or more "Send to" options, are added to the context menu, depending on the item you clicked on.

Is there any way to have those extras permanently, without having to hold down Shift?

I hope it can be done without installing extra shell extensions (see below) – more thinking about a registry hack or something…

Update:

Solved for "Open command window here", not yet for "Copy as path"!


On my XP system, I used to install SmartStartMenu only for the shell extension that comes with it, giving the ever useful 'Copy pathname', 'Copy short pathname', 'Run with command line arguments' and 'Open in DOS box' menu items, without needing to hold down Shift or any other "modifier key".

mousio

Posted 2011-06-10T15:01:01.123

Reputation: 771

Great question. Any progress on 'copy as path'? – Colonel Panic – 2012-12-14T12:54:02.820

Sorry, no… I have gotten used to hold down Shift for that :/ – mousio – 2012-12-14T17:37:37.060

1Hi! Did you find a way to move the ShellEx Menu Items out or into the extended Menu? I have been looking everywhere, but cannot find anything that would work. Would like to hide some items by default while having them available on the extended menu. I have tried adding the "Extended" string in the registry (as it is done with the normal shell menus) but with no luck. Disabling is easy but not practical since there is occasionally need for those items. – leugim – 2013-06-01T04:35:31.167

Answers

5

This seems to be what you're looking for: http://www.techspot.com/guides/210-edit-windows-extended-context-menu/

This involves using a small software utility 'ShellMenuView' which doesn't require installation and is compatible with 'everything from Windows 98 to Windows 7 x64'. You can download the utility here (32-bit | 64-bit).

RobinJ

Posted 2011-06-10T15:01:01.123

Reputation: 892

3You should absolutely avoid using third party apps for doing things you can do yourself. There are freeware devs that are genuinely honest folk and are putting stuff out to help people but there are also hacker devs out there that will use trojan/spyware planted freeware to backdoor their way into your PC for data-mining and identity theft purpose.Problem is that it's really hard to tell them apart. A clean bill of health on VirusTotal can't guarantee a clean file either because a really good hackers can upload their files to VTot too and tweak them until there are no more positives. – thebunnyrules – 2017-02-11T05:45:41.233

1@thebunnyrules By that logic we should all go back to using pen and paper. Applications are there to make our lives easier, that's the whole purpose of them. If you can't install any applications then you might as well not be using a computer in the first place. – RobinJ – 2017-02-13T11:56:38.127

1@RobinJ First off, I think you put my logic on a medieval rack and stretched and twisted it until it was unrecognizable. I didn't say people shouldn't install apps. I said people should not rely on apps written by random strangers with unknown intentions when they can do something as trivial as this themselves (see my answer below, it would probably take you the same amount of time to follow my tutorial as to download the freeware and play around with it). – thebunnyrules – 2017-02-13T22:05:03.847

2Great, thanks! I was able to turn off "Extended Mode" for "Open command window here" with the tool ShellMenuView, but no such luck with "Copy as path". The related tool ShellExView lists a "Copy as Path Menu" but I cannot change its behaviour. The corresponding CLSID in the registry has an empty "ContextMenuOptIn" key (REG_SZ) which I have played around with, but to no avail (and I cannot find any info on that key)… – mousio – 2011-06-10T20:02:57.030

5

I never tried to completely disable the shift menu but I wouldn't recommend it as it's actually a very useful tool for de-cluttering the main context menu if you know how to control what goes into main vs unshifted. That is quite an easy thing to do but here are some basics first:

All your context menu items that deal individual files or up to 15 files selected can be found here:

HKEY_CLASSES_ROOT\*\shell

folder related actions are broken up into 2 categories: actions available when you right click background and actions when you right click a folder. And they can be found here:

HKEY_CLASSES_ROOT\Directory\Background\shell
HKEY_CLASSES_ROOT\Directory\shell

Drives have their own keys here:

HKEY_CLASSES_ROOT\Drive\shell

The structure of context menu commands will be as follows

HKEY_CLASSES_ROOT\(*,Directory or Drive)\shell\(Command's Main Key)
HKEY_CLASSES_ROOT\(*,Directory or Drive)\shell\(Command's Main Key)\command <=this will store the executed command when when the context menu item related to this key is selected 

The Command entry in the context menu will have the same name as the main key unless you specify differently by creating a String Value called MUIverb under the main key. Eg. You can make a String Value called MUIverb and set it value as New Name ("MUIverb"="New Name").

A command that will be located in the extended shift when it has a String Value called Extended under the main key. You want it to be in the main shell context menu, delete the "Extended" String Value entry. You want to transfer something to the extended menu, just put "Extended" in it's main key. You can also specify an icon for the menu entry by putting another String Value in the same key. Eg: "Icon"="C:\Windows\system32\SHELL32.dll,133" or "Icon"="C:\Pictures\Icons\SomeRandomIcon.ico".

Unfortunately, Microsoft are anything but consistent. You're not going to find everything you're looking in the places I listed. A lot of things are in shellex (copy as path for example) and operate under different rules than what I've told you about.

In the case of copy as path, I simply deleted it from the context menu and made my own which I'm attaching here for your convenience. Open notepad, and copy the content of each reg files I put up here. Right click them and select merge.

Copy As Path - Delete MS Vanilla Version from Shift Menu.reg:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\CopyAsPathMenu]

Copy as Path Enable in regular menu.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Copy as Path]
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\*\shell\Copy as Path\command]
@="cmd.exe /c echo %1|clip"

[HKEY_CLASSES_ROOT\Directory\shell\Copy as Path]
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\Directory\shell\Copy as Path\command]
@="cmd.exe /c echo %1|clip"

[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy as Path]
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy as Path\command]
@="cmd.exe /c echo %V|clip"

Copy as Path Enable - with quotes - in shift menu.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Copy as Path (With Quotes)]
"Extended"=""
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\*\shell\Copy as Path (With Quotes)\command]
@="cmd.exe /c echo \"%1\"|clip"

[HKEY_CLASSES_ROOT\Directory\shell\Copy as Path (With Quotes)]
"Extended"=""
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\Directory\shell\Copy as Path (With Quotes)\command]
@="cmd.exe /c echo \"%1\"|clip"

[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy as Path (With Quotes)]
"Extended"=""
"Icon"="C:\\Windows\\system32\\SHELL32.dll,133"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy as Path (With Quotes)\command]
@="cmd.exe /c echo \"%V\"|clip"

Now you can go about messing with registry in RegEdit.exe but it is an intensely limited tool. I would just recommend you write your .reg files and merge them as needed. This will also make it easy to re-apply your changes when you do fresh windows installs. You can also export changes you make in RegEdit by exporting individual keys as a .reg file.

thebunnyrules

Posted 2011-06-10T15:01:01.123

Reputation: 510

2

Unfortunately, this can't really be done for the CopyAsPathMenu (GUID {f3d06e7c-1e45-4a26-847e-f9fcdee59be0}) shell "extension" that comes with Windows 7, because its QueryContextMenu method has all the useful stuff conditioned on a check for the CMF_EXTENDEDVERBS flag.

In theory, you can see this by disassembling SHELL32.dll!?QueryContextMenu@CCopyAsPathMenu@@UAGJPAUHMENU__@@IIII@Z, but if you don't have a clue what kind of moon language I'm using then you'd have a lot to learn before you could; some of it might be in the Debugging Tools for Windows help file (debugger.chm).

SamB

Posted 2011-06-10T15:01:01.123

Reputation: 971

Thanks for sharing your findings! I guess that concludes it, at last, we can have closure. – mousio – 2016-10-06T17:32:00.107

0

There are several tools that provide copy path feature on the context menu

For example

phuclv

Posted 2011-06-10T15:01:01.123

Reputation: 14 930