Add Cascading Menus for Programs in Desktop and My Computer Context Menus in Windows 7 and Later

UPDATE: This tutorial will also work in Windows 8 and later OS versions.

We have posted several tutorials in past which help in adding your favorite programs shortcuts and other useful system shortcuts in Windows 7 Desktop context menu. Some of them are as follows:

Some AskVG readers complained that all these tutorials add the programs shortcuts in the main Desktop context menu which makes the whole menu large. They asked a method to add cascading menus in Desktop context menu.

Advertisement

I liked the idea and I tried to create cascading menus containing programs shortcuts which also helps in grouping the programs. For example, you can create different cascading menus like Applications, Browsers, Media Players, System Shortcuts and when you hover your mouse cursor over them, they open a list containing all your favorite programs. In this way, it’ll not make the main context menu large as shown in following screenshots:

Cascade_Menus_Windows_7_Desktop_Con.png

Cascading_Menu_in_Computer_Context_.png

So today in this tutorial, you’ll learn how to create cascading menus in Windows 7 Desktop and My Computer context menus.

This tutorial has been divided in 2 parts:

  • Creating cascading menus and adding programs shortcuts
  • Adding functionality to the shortcuts by registering them

So without wasting any time, here we start the tutorial:

PART 1: Creating cascading menus and adding programs shortcuts

1. Type regedit in RUN or Start Menu Search box and press Enter. It’ll open Registry Editor.

Advertisement

2. Now go to following key:

HKEY_CLASSES_ROOT\DesktopBackground\Shell

PS: If you want to add the cascading menu in My Computer context menu instead of Desktop context menu, then go to following key instead of the above mentioned key:

HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

3. Now we’ll need to create a new key under “Shell” key. Right-click on “Shell” key and select “New -> Key“. Give the new key any desired name e.g. “Menu1” (without quotes).

PS: If you receive error message while creating new key, take ownership of the “Shell” key with the help of following tutorial:

[Guide] How to Take Ownership (Permission) of a Registry Key in Windows?

4. Now select this newly created key “Menu1” and in right-side pane, we’ll need to create following 4 String values:

  • MUIVerb
  • SubCommands
  • Icon
  • Position

Icon and Position are optional but MUIVerb and SubCommands are compulsory.

MUIVerb contains the name of cascading menu which will be displayed in the context menu. You can set its value to any desired name like Apps, Browsers, etc. Feel free to set any name.

SubCommands contains list of commands separated by semi-colon (;) which you want to show under cascading menu. You can’t add any program shortcut directly. First you’ll need to give any desired command name in this list and after that you’ll need to register it using PART 2 so that it can start working.

5. If you are confused about “SubCommands” String value, this point will clear all your doubts.

Suppose you have created a cascading menu “Apps” using Step 3 and now you want to add Notepad and Calculator shortcuts under it. In this case, you’ll need to set following as “SubCommands” value:

notepad;calc

Above value can be changed according to your requirement. You can use np;ca instead of notepad;calc. But you’ll have to use the same name while registering those commands using PART 2.

PS: If you want to put a separator between menus, just use Pipe symbol (|) between commands. For example, notepad;|;calc. Thanks to our reader “e01Z” for this trick…

6. Icon String value can be used to show an icon for your cascading menu. In our example, we have set its value to explorer.exe that’s why its showing Windows Explorer icon for the “Apps” cascading menu.

Adding_Cascade_Menus_Windows_7.png

7. Position String value can be used to define the position of cascading menu in the context menu. By default the cascading menu is shown in the middle but you can set its position at Top or Bottom with the help of “Position” String value.

8. You can create more than one cascading menus using Step 3 and 4.

PART 2: Adding functionality to the shortcuts by registering them

Once you have added the program shortcuts to cascading menus, you’ll need to register the commands mentioned in “SubCommands” String value using following method:

1. Go to following key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell

2. Under this key, we’ll need to create new keys for each command mentioned in “SubCommands” String value.

In our example, we used 2 commands notepad and calc, so we’ll need to create 2 keys under “CommandStore\Shell” key with the same names notepad and calc.

PS: If you receive error message while creating new key, take ownership of the “Shell” key with the help of following tutorial:

[Guide] How to Take Ownership (Permission) of a Registry Key in Windows?

3. Once you create the key, select it and in right-side pane set value of “(Default)” to the name which you want to show in cascading menu. For example set its value to Notepad or Calculator or any other desired string.

4. If you also want to show an icon for it, create a new String value with the name icon and set its value to program’s EXE file path or any other desired icon. For example, to show Notepad icon for Notepad shortcut, you can set value of Icon to notepad.exe

5. Now final step! Create a new key under the recently created keys, e.g. notepad or calc and give it name command.

Click on it and in right-side pane, set value of “(Default)” to the path of your desired program’s EXE file. For example, if you want to open Notepad when you click on “Notepad” entry in cascading menu, set value of “Command” to notepad.exe

Adding_Cascade_Menus_Windows_7_2.png

PS: Notepad is a Windows application, so you can omit the full path but if you want to execute any 3rd party program, you should give full path of its EXE file.

That’s it. Now you’ll see your desired cascading menus containing your favorite programs shortcuts in Desktop or My Computer context menus.

BONUS: Ready-Made Registry Script

If you are still confused or afraid in following the above method, you can copy following code, paste in Notepad and save it with the name “cascade.reg” (including quotes). Run the saved file and it’ll add Notepad and Calculator in a cascading menu “Apps” in Desktop or My Computer context menus:

For Desktop context menu:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Menu1]
"MUIVerb"="Apps"
"SubCommands"="notepad;calc"
"icon"="explorer.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
@="Notepad"
"icon"="notepad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
@="notepad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc]
@="Calculator"
"icon"="calc.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc\command]
@="calc.exe"

For My Computer context menu:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Menu1]
"MUIVerb"="Apps"
"SubCommands"="notepad;calc"
"icon"="explorer.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
@="Notepad"
"icon"="notepad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
@="notepad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc]
@="Calculator"
"icon"="calc.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc\command]
@="calc.exe"

If you want to add any other program shortcut or want to change the names of cascading menu or program shortcuts, you just need to change the part mentioned in BOLD.

NOTE: If you want to remove the cascading menus, simply delete the keys created in Step 3 under PART1 and Step 2 under PART2.

Further Read:

Published in: Windows 7, Windows 8

About the author: Vishal Gupta (also known as VG) has been awarded with Microsoft MVP (Most Valuable Professional) award. He holds Masters degree in Computer Applications (MCA). He has written several tech articles for popular newspapers and magazines and has also appeared in tech shows on various TV channels.

Comments

NOTE: Older comments have been removed to reduce database overhead.

  1. ^^ Here you go:

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\downloads]
    @=”Downloads”

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\downloads\command]
    @=”explorer \”D:\\Downloads\””

  2. if I need to add a program to all the Right CLick menu, i.e., inside a folder, desktop, drive etc…

  3. actually I am trying to add NewFolder to the RightClick menu, is that possible…

  4. I followed all instructions carefully, on my right click menu the cascading menu i created shows up, but when i hover over it, it does nothing! even clicking1 what shall i do?

  5. I wrote my own application to display the selected file path & its properties & added it to context menu. I am able to send %1 as the current selected files path but when I select multiple files & open for every selected file one new instance of application is created. How to send multiple arguments(like %*) to a particular command?

  6. How can I do the opposite? I want to STOP the cascading. Is there a ways or a file that will make my new windows open on top of each other? E.g, when I have Firefox open, I want every firefox window to open in the identical place and stacked. Likewise, I want Picasa to always open at the same place and on top of each other. Etc.

    I find I’m spending to much time resizing and moving the windows where I want them, and W7 won’t learn.

    Previous Windows learned by holding down the Ctrl key while Xing.

    Thanks for any help you can give me.

  7. ^^ Sometimes Windows doesnt remember program windows positions and size. If you quickly want to resize windows, you can take help of various options present in Taskbar context menu such as cascade windows, show windows side by side, etc.

  8. Please, is there any way to restore the send-to menu cascading function, which w98 had, to the send-to menu in w7/w8? The copy/move-to context items are horribly clonky and slow (are they from w95?). You could just copy your entire folder hierarchy (empty folders of course) into the ‘send to’ menu and drill straight down to where you wanted to put a file. And at bottom level, or better a seperate top level folder, shortcuts to all your .exe ‘s let you open a file with any programme you wanted, avoiding the stupid modern ‘open with’ dialogue. Please!!

  9. Thanks VG, but looked at that thread already; I’m not after extending the send to menu by making it longer, although it’s easy enough to put extra items in it, and I have a shortcut to it on the desktop to make access easy.
    No, in W98 it was possible to put folders into the sendto menu, and fill these with shortcuts to lower level folders in your filing system (continuing down several levels if you wanted); and these folders and eventually shortcuts cascaded from the sendto menu, just as the sendto menu cascades from the context menu; so that the sendto menu could basically be a copy of your folder hierarchy. But if you put a folder in W7 sendto menu, it doesn’t open and clicking on it just puts things in that folder!

  10. Just for your information.

    You can have cascaded context menu icons for folder windows by doing the same thing in this key in Step 2 of Part 1:

    HKEY_CLASSES_ROOT\Directory\Background\shell

  11. As a demonstration, here is the registry entry for adding Calculator and regedit to the folder window’s context menu.

    NB: Note that items added using this method also appear on the desktop’s context menu.

    —–

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\Directory\Background\shell\menu1]
    “MUIVerb”=”Tools”
    “SubCommands”=”calc;|;regedit”
    “Icon”=”explorer.exe”

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc]
    @=”Calculator”
    “Icon”=”calc.exe”

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc\command]
    @=”calc.exe”

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit]
    “Icon”=”regedit.exe”
    @=”Registry Editor”

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit\command]
    @=”regedit.exe”

  12. Unfortunately after the latest Windows 10 update (1115) the cascading menus for ‘This PC’ (and network, too) all disappeared. Not only because the update cleared the registry; even after reimporting the above snippets (I’ve double checked they definitely do appear in my registry again) there is absolutely nothing in the context menu of CLSIDed icons (‘This PC’ and ‘Network’, just to name two of them). Single context menu items (no cascaded) don’t work either.

    Context (even cascaded) for DesktopBackground, Folder, AllFiles (*) do still work.

    Has MS silently changed the CLSIDs of some desktop objects? Is there a hidden registry switch preventing some of the context items to show up? To be sure I’ve checked the according Group Policy switch, its status is ‘undefined’.

    ??!?

    Glad for any hints.

  13. How does this compare to the simple route of creating a custom toolbar which then sits on the task bar and can be managed (including copied for backup) using simple Windows Shortcuts?
    Step 1. Create a folder, I called mine “My Tools”, and fill it with the shortcuts to whatever files, programs or folders you wish. Step 2, Right-click on the Taskbar, select Toolbars – New Toolbar – and locate the folder you created in step 1. Note that the folders can have sub-folders as you wish. Very Simple and straight-forward without the need to edit the registry.
    Perhaps users may prefer this option?

  14. i realize this is a longshot, but i’m desparate for a solution. this guide is great for entries under the shell key, but what about all the shellex entries? i have some applications that stack the menu with items that i wish i could put in a folder, but i can’t because they’re under shellex. sure, i could run the program under a shell command, but the shellex entries provide many app specific options, rather than just simply opening the program.

    please, is there any way to create cascading folders for shellex menu items? or, is there a way to transfer the shellex entries (which usually refer to a program specific .dll file) to the shell key?

  15. Great tutorial, VG. I’ve been limiting myself as to what I add to the context menu because of this space issue. This helps alot. I would make this one correction though:

    MUIVerb is not compulsory. Whatever name you select for your cascading menu key will be the default name for it until you specify something else in MUIVerb. So if you change menu1 to Applications and Utilities and delete MUIVerb, it will still work and show that name.

    Using MUIVerb does make more sense if you maintain your registry through reg files or through the command line rather than the GUI regeditor as as rename an entire key involves deleting the key and recreating another with the same content whereas MUIVerb is a single string value to change.

  16. Thanks man that was Great ,,

    can u help me ,

    i want to make a new Context Menus has name PC info and under it showing me three info Computer name, MAC address and IP address .

    is that possible ?

    Thanks .

  17. ^^ I dont think its possible. We can add shortcuts to programs but we cant show information directly in context menu.

  18. Thanks man for ur quick replay ,

    what about making vbs file that creating .reg file that changing the name of notepad to computer name and make the command blank is it possible ?
    and put it in group policy start up ?

  19. Hi.
    I followed the steps you explained above and it works fine with a vbscript (see below “Tarefa 1”).
    But when i try use %1 to pass the folder name to the vbscript (see below “Tarefa 2”) it does not execute at all and i can’t figure out where the problem is.

    These are the entries created in registry:

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\Directory\Background\shell\SIGRA – Tarefas]
    “MUIVerb”=”As Minhas Tarefas”
    “SubCommands”=”Tarefa 1; Tarefa 2”
    “Icon”=”explorer.exe”

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Tarefa 1\command]
    @=”wscript.exe \”C:\\Users\\4020856\\Documents\\__MyHandlers\\ContextHandlers\\task1.vbs\””

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Tarefa 2\command]
    @=”wscript.exe \”C:\\Users\\4020856\\Documents\\__MyHandlers\\ContextHandlers\\task2.vbs\” \”%1\””

    Any help would be appreciated.

    Best regards.

  20. Is there a way to do a right click and have the option to display the contents of a folder on the desktop as a menu? I have a folder on my desktop with numerous tn3270 links and rather than opening the folder in windows explorer and then clicking on a link, I’d like to RMB, click view contents as menu, then click on the tn3270 link that I want to open.

    Is this doable?

  21. Lionel – I don’t know any way to do that in right click, But the way I’ve got partly got over my send-to query, which might be useful to you, is to make a tool-bar (in the task-bar) of either “my computer” or just the “documents” partition (not “my documents”). This then produces what is almost a win 95 style cascading start menu, You can open, copy from, and paste to, here. This is in Win7. Might work in Win 8/10?

  22. Hi VG,

    Pls suggest how to modify this script to dynamically show a different icon for currently Active power plan. I need “icon”=”powercpl.dll,-1” for currently Active plan, and “icon”=”powercpl.dll,-560″ for other plans. I think, it can be done by adding:

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Switch Power Plan\Command]
    @=”C:\\Windows\\Batches\\icon.bat”

    What should be the required icon.bat code to dynamically change icon types in cascading menus on mouse hover on the main context menu item Switch Power Plan?

    ————————————————————————————–

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Switch Power Plan]
    “Icon”=”powercpl.dll”
    “MUIVerb”=”Switch Power Plan”
    “Position”=”Top”
    “SubCommands”=””

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Switch Power Plan\Shell\Balanced]
    “MUIVerb”=”Balanced”
    “Icon”=”powercpl.dll”

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Switch Power Plan\Shell\Balanced\Command]
    @=”powercfg.exe /S 381b4222-f694-41f0-9685-ff5bb260df2e”

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Switch Power Plan\Shell\High Performance]
    “MUIVerb”=”High Performance”
    “Icon”=”powercpl.dll”

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Switch Power Plan\Shell\High Performance\Command]
    @=”powercfg.exe /S 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c”

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Switch Power Plan\Shell\Power Saver]
    “MUIVerb”=”Power Saver”
    “Icon”=”powercpl.dll”

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Switch Power Plan\Shell\Power Saver\Command]
    @=”powercfg.exe /S a1841308-3541-4fab-bc81-f71556f20b4a”

  23. Is there a limit to the number of items in a menu created by this method ?
    I cannot add more than 16 items.

    My menu :
    menu
    ….submenu with 8 items
    ….submenu with 8 items

  24. I ran the two scripts you provided “For Desktop context menu & For My Computer context menu” and the final confirmation to check off i got this error…
    Cannot import C:\Users\Brian\Desktop\cascade.reg:The specified file is not a registry script.You can only import binary registry files from within the registry editor.

    I used the the manual way as well and the only thing that shows up is “Menu1” and nothing after it.

  25. ^^ Did you extract the REG file and then ran it? It seems you are trying to direct run REG file by opening the ZIP file.

Leave a Comment

Your email address will not be published. Required fields are marked *

NOTE: Your comment may not appear immediately. It'll become visible once we approve it.