Click here to Skip to main content
Licence 
First Posted 12 Apr 2005
Views 141,874
Downloads 3,176
Bookmarked 115 times

Add a context menu to the Windows Explorer

By dmihailescu | 12 Apr 2005
Add a context menu to the Windows Explorer using Registry only.
3 votes, 14.3%
1
1 vote, 4.8%
2
2 votes, 9.5%
3
4 votes, 19.0%
4
11 votes, 52.4%
5
4.25/5 - 21 votes
3 removed
μ 3.97, σa 2.62 [?]

Introduction

Many of us like the convenience of the context menus in Windows Explorer and hate typing long paths in the command prompt window. This tool is going to address this issue by adding a new item on the context menu when you right click on a folder. You could get a command prompt that will open in the parent directory and not elsewhere. If you are not interested in the command prompt, then you can specify another executable of your choice as the target and still save some clicks and typing.

Background

Dealing with Explorer usually requires some shell programming that is not always nice. Fortunately, the hack I'm going to describe would merely set some registry entries to make this happen.

Using the code

The registry entries are the following:

private const string MenuName = "Folder\\shell\\NewMenuOption";
private const string Command = "Folder\\shell\\NewMenuOption\\command";

The code is self-explanatory and it merely sets the registry:

private void btnAddMenu_Click(object sender, System.EventArgs e)
{
    RegistryKey regmenu = null;
    RegistryKey regcmd = null;
    try
    {
        regmenu = Registry.ClassesRoot.CreateSubKey(MenuName);
        if(regmenu != null)
            regmenu.SetValue("",this.txtName.Text);
        regcmd = Registry.ClassesRoot.CreateSubKey(Command);
        if(regcmd != null)
                regcmd.SetValue("",this.txtPath.Text);
    }
    catch(Exception ex)
    {
        MessageBox.Show(this,ex.ToString());
    }
    finally       
    {
        if(regmenu != null)
            regmenu.Close();
        if(regcmd != null)
            regcmd.Close();
    }        
}

Or it deletes the settings if you don't like them anymore:

private void btnRemoveMenu_Click(object sender, System.EventArgs e)
{
    try
    {
        RegistryKey reg = Registry.ClassesRoot.OpenSubKey(Command);
        if(reg != null)
        {
            reg.Close();
            Registry.ClassesRoot.DeleteSubKey(Command);
        }
        reg = Registry.ClassesRoot.OpenSubKey(MenuName);
        if(reg != null)
        {
            reg.Close();
            Registry.ClassesRoot.DeleteSubKey(MenuName);
        }
    }
    catch(Exception ex)
    {
        MessageBox.Show(this,ex.ToString());
    }
}

The rest of the code only provides a sane user interface.

Points of Interest

You obviously have all the rights to change the Registry for this application to run as desired.

History

  • 12th April, 2005 - version 1.0.0.0.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

dmihailescu

Software Developer (Senior)

United States United States

Member
Decebal Mihailescu is a software engineer with interest in .Net, C# and C++.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
QuestionIcon PinmemberJrrS8820:38 5 Dec '11  
GeneralMy vote of 3 Pinmembermohammadrefaie8:14 4 Nov '11  
QuestionAdd a context menu to the Windows Explorer - Does not work for me Pinmembersubha@m9online23:08 30 Oct '11  
AnswerRe: Add a context menu to the Windows Explorer - Does not work for me Pinmemberfredthered3:41 27 Jan '12  
Questionhow can have add a customize item to right click windows 7 like winrar program Pinmembersyasaketi20:34 19 Oct '11  
AnswerRe: how can have add a customize item to right click windows 7 like winrar program Pinmemberdmihailescu13:53 20 Oct '11  
GeneralMy vote of 1 Pinmembersyasaketi20:32 19 Oct '11  
QuestionGreat - but ... PinmemberWrangly22:08 4 Jul '11  
GeneralDrag Drop PinmemberOnur Guzel5:10 15 Nov '10  
GeneralRe: Drag Drop Pinmemberdmihailescu16:31 16 Nov '10  
GeneralRe: Drag Drop PinmemberOnur Guzel9:58 19 Nov '10  
QuestionCan we add SuBemnu PinmemberBassaammm3:21 12 Aug '10  
Generalfor VB.Net Pinmemberphowarso21:01 13 May '10  
QuestionHow to retrieve the selected folder name? Pinmembergiji gangadharan20:42 17 Jan '10  
AnswerRe: How to retrieve the selected folder name? PinmemberThomas Vogel7:11 26 Mar '10  
GeneralRe: How to retrieve the selected folder name? Pinmembermostafa.elsadany9:25 25 Jan '11  
GeneralRe: How to retrieve the selected folder name? Pinmembermostafa.elsadany9:36 25 Jan '11  
QuestionHow can we link our exe file while right click the menu item Pinmembergiji gangadharan22:44 11 Jan '10  
AnswerRe: How can we link our exe file while right click the menu item Pinmemberdmihailescu13:56 12 Jan '10  
AnswerRe: How can we link our exe file while right click the menu item PinmemberTristanV0:06 15 Jun '10  
QuestionAdd Icon to the menu item Pinmembersk ghouse1:44 10 Sep '09  
GeneralAdd icon to the menu PinmemberMember 441027115:57 27 Apr '09  
Generaladding file,edit,view,help menus to an windows application Pinmemberaurosikhadas2:15 1 Oct '08  
GeneralIs it possible only windows xp and not 2000 Pinmemberhesaigo999ca4:38 24 Jul '08  
GeneralRe: Is it possible only windows xp and not 2000 Pinmemberdmihailescu13:52 24 Jul '08  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120210.1 | Last Updated 12 Apr 2005
Article Copyright 2005 by dmihailescu
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid