5

As I work on different computers with different programs installed, I often have to search for the Open with-dialog in the Context Menu, as the Context Menu is seemingly sorted alphabetically, and therefore, lots of programs might - and will - stand in front or after it.

So I want to move Open with to the top of the list, as shown here:

diagram of context menu

As I don't really like third-party programs that mess around with my Registry and come with all sorts of OpenCandy and the likes, I want to do this the old-fashioned, manual way - and I immediately hit a problem.

A bit of googling around led me to this SO-question called "Order in the Windows Explorer context menu" that in turn led me to this - rather old - blogpost from MSDN stating that:

[...] the sorting is based on the following elements in decision order:

  1. Key priority (eg, txtfile, *, AFSO)

  2. Registry Enumeration order of shellex\contextmenuhandlers with a special case for static verbs always being first

  3. IContextMenu Implementation order


The only solution I can think of is very unelegant: Renaming Open with into something like 1: Open with or 0pen with. I tried that, but unfortunately, this removes Open with completely (as in: it is no longer in the context menu).

Another solution I read of in the SO-question was to place Open with inside another section of the Context Menu. I would like to avoid this, too, as it would only help slightly , because the amount of programs would still influence the position.


Is there any way to get Open with on top via the manual way, e.g. via Regedit or PowerShell?

Note: To me, it does not really matter if it comes before or after Open.

2

Instead of changing position of regular Open with from HKCR\*\shellex\contextmenuhandlers in the context menu popup, you can add next other Open with under HKCR\*\shell and force its position to the top in the popup as follows:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\.OpenWith]
"Position"="Top"

[HKEY_CLASSES_ROOT\*\shell\.OpenWith\command]
@="{09799AFB-AD67-11d1-ABCD-00C04FC30936}"

Result (an example with a .png file):

OpenWith

To revert changes back, read and follow Deleting Registry Keys and Values

To delete a registry key with a .reg file, put a hyphen (-) in front of the RegistryPath in the .reg file.

In this case, to delete the .OpenWith subkey from the HKEY_CLASSES_ROOT\*\shell registry key, use:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\.OpenWith]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.