I know how to add a context menu for when you click on an actual folder:


but what about clicking on nothing in a folder?

like I make a new folder on my desktop, double click to enter the folder, then right click on nothing (the folder is empty), now I want my context menu to appear in this situation.

  • I think the key you want is HKEY_CLASSES_ROOT\Directory\Background – Andrew Lambert May 1 '12 at 18:38
  • 1
    thanx @Amazed that was really close... it is actually: [HKEY_CLASSES_ROOT\Directory\Background\shell\commandNameHere] – xero May 1 '12 at 18:54
  • 5
    solved for anyone interested here's the .REG file to add this functionality to the windows context menu: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Shell] @="none" ` ` [HKEY_CLASSES_ROOT\Directory\shell\gitBashHere] [HKEY_CLASSES_ROOT\Directory\Background\shell\gitBashHere] "Icon"="C:\\icons\\git-gui.ico" "MUIVerb"="git bash here" "Position"="bottom" ` ` [HKEY_CLASSES_ROOT\Directory\shell\gitBashHere\command] [HKEY_CLASSES_ROOT\Directory\Background\shell\gitBashHere\command] @="C:\\Program Files\\Console2\\Console.exe -d %v" – xero May 1 '12 at 19:07
  • 2
    It's allowed and encouraged to answer your own questions. If you solved your problem, post an answer and accept it. – Dennis Jun 6 '12 at 14:12

For anyone interested, here's the .reg file to add this functionality to the windows context menu:

Windows Registry Editor Version 5.00
"MUIVerb"="git bash here"
@="C:\\Program Files\\Console2\\Console.exe -d %v"

(Taken from xero's comment)

This adds a command to the context menu named "git bash here" with an icon, which opens a console.

The command is added under both:

  • HKEY_CLASSES_ROOT\Directory\shell, the context menu when you right-click on a folder
  • HKEY_CLASSES_ROOT\Directory\background, the context menu when you right-click on the "background" empty space while in a folder
  • 2
    Be aware of the value "none" for the default action ('@=') Without this 'none', Windows treats one of the added actions as default, so double clicking on a directory does not longer open the directory but triggers the action - which makes Windows nearly unusable. -> Set 'none' as default action allows to add contextmenu items without changing windows default behaviour. – user456803 Jun 9 '15 at 7:51
void WriteContextMenu(LPSTR key, LPSTR value) {

HKEY hkey=0; DWORD disp;




      cout<<"Unable to open Registry"<<key;


}if(RegSetValueEx(hkey,TEXT(""),0,REG_SZ,(LPBYTE)value, strlen(value)*sizeof(char))!=ERROR_SUCCESS)



       cout<<"Unable to set Registry Value ";

} else{

   cout<<value<<" value has set"<<endl;
}int main(){LPSTR key="Folder\\shell\\Testing_App"; 

 LPSTR valueKey="Menu_Title";

 LPSTR Subkey="Folder\\shell\\Testing_App\\command";

/*Here put the path or action you want to perform like you want to
    open cmd  on your context menu so the value id */

    LPSTR valueSubKey="cmd.exe";

    WriteContextMenu(key, ValueKey); 
    WriteContextMenu(Subkey, ValueSubKey);

return 0;}
| improve this answer | |
  • this will show your context menu on all folders ... when you compile this code so make sure you have administrative privileges.. Hope this code will be helpful for you – Kashif Meo Apr 19 '16 at 10:53
  • 1
    Could you edit your answer to explain a little more what your code does? – Burgi Apr 19 '16 at 13:49
  • While this may answer the question, it would be a better answer if you could provide some explanation why it does so. – DavidPostill Apr 20 '16 at 8:48
  • actually this code will do just create a new key for context menu. key and subkey also their values respectively. when this code compiled and run then on every folder it will show that context menu... – Kashif Meo Apr 20 '16 at 13:08
  • but I think question req is changed .. it may help him but not the exact solution.. – Kashif Meo Apr 20 '16 at 13:11

Here is one solution for all context menus.


But, How to pass multiple directories or files to this context menu as arguments as %1 is taking only one and when we ctrl+click multiple files, it is opening the executable mutliple times instead of sending all of them as arguments.

| improve this answer | |

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.