Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

[HKEY_CLASSES_ROOT\Directory\shell\commandNameHere]

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.

share|improve this question
    
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
[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"

(Taken from xero's comment)

share|improve this answer
1  
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;

if(RegCreateKeyEx(HKEY_CLASSES_ROOT, key, 0, NULL, REP_OPTION_NON_VOLATILE, KEY_WRITE,NULL, &hkey, &disp)!=ERROR_SUCCESS) 

{

     if(RegOpenKey(HKEY_CLASSES_ROOT,key,&hkey)!=ERROR_SUCCESS)
    {   

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

        }

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

{

   RegCloseKey(hkey);

       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;}
share|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 at 10:53
    
Could you edit your answer to explain a little more what your code does? – Burgi Apr 19 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 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 at 13:08
    
but I think question req is changed .. it may help him but not the exact solution.. – Kashif Meo Apr 20 at 13:11

Here is one solution for all context menus.

http://stackoverflow.com/questions/20449316/how-add-context-menu-item-to-windows-explorer-for-folders/20458056#20458056

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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