5,699,997 members and growing! (17,544 online)
Email Password   helpLost your password?
Languages » C# » Samples     Intermediate License: The Code Project Open License (CPOL)

Delete Links from the Recent Projects List on the Start Page of Visual Studio 2003, 2005 and 2008

By Carlos Saraiva Jr.

This application deletes links from the Recent Projects list on the Start page of Visual Studio 2003/2005/2008
C# 2.0, C#Windows, .NET, .NET 2.0, Win2K, WinXP, Win2003, WinForms, VS.NET2003, VS2005, Visual Studio, Dev, QA

Posted: 25 May 2007
Updated: 25 Apr 2008
Views: 10,330
Bookmarked: 22 times
Announcements
Loading...



Search    
Advanced Search
Sitemap
17 votes for this Article.
Popularity: 5.71 Rating: 4.64 out of 5
1 vote, 5.9%
1
1 vote, 5.9%
2
1 vote, 5.9%
3
1 vote, 5.9%
4
13 votes, 76.5%
5
Screenshot - ssdrp.jpg

Introduction

This article describes how to delete links from the Recent Projects list in the Start page of Visual Studio 2003/2005/2008, by accessing registry keys and doing some operations like delete and changing them.

Background

Some time ago, I wanted to eliminate some links from the Recent Projects list and I did not know how to do that. Searching the Web, I found articles describing how to delete them, but they all described a manual process: Open Regedit from Run..., etc.... So, I decided to write a small application to automate this task.

The Code

The PopulateListView Method

You could use this application or source code in your own application.

The first method is used to populate a ListView in a Form.

 private void PopulateListView(string versaoVS)
        {
            RegistryKey regKey = Registry.CurrentUser;
            regKey = regKey.OpenSubKey
                ("Software\\Microsoft\\VisualStudio\\" + versaoVS + "\\ProjectMRUList");
            lstvRecentProjects.Items.Clear();

            if (regKey == null) return;

            foreach (string keyname in regKey.GetValueNames())
            {
                try
                {
                    ListViewItem item = new ListViewItem();
                    item.Checked = false;
                    string kname = keyname;
                    string value = (String)regKey.GetValue(kname);
                    RegistryValueKind valuekind = regKey.GetValueKind(kname);

                    lstvRecentProjects.SmallImageList = imgList;

                    item.Text = ReturnTexto(value);
                    item.Tag = valuekind;
                    item.SubItems.Add(value);
                    item.ImageIndex = ReturnImageIndex(item.Text);

                    lstvRecentProjects.Items.Add(item);
                    lstvRecentProjects.Refresh();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Exception: " + ex.Message + 
                        "\r\nPlease report this Exception, " +
                        "mail to carlosaraiva@gmail.com!", "Exception", 
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                }
            }
        }

The DeleteRegKey Method

You could use this application or source code in your own application. The second method is used to delete a registry key after selecting a project or solution in the ListView and clicking the Delete button.

 private void DeleteRegKey()
        {
            string versaoVS = null;
            if (rdbVS2003.Checked)
                versaoVS = "7.1";

            if (rdbVS2005.Checked)
                versaoVS = "8.0";

            if (rdbVS2008.Checked)
                versaoVS = "9.0";

            try
            {
                RegistryKey regKey = Registry.CurrentUser;
                regKey = regKey.OpenSubKey("Software\\Microsoft\\VisualStudio\\" + 
                         versaoVS + "\\ProjectMRUList", true);
                bool delete = false;
                string name = "File";

                if (regKey == null) return;  

                foreach (ListViewItem item in lstvRecentProjects.Items)
                {
                    if (item.Checked)
                    {
                        delete = true;
                        lstvRecentProjects.Items.Remove(item);
                        foreach (string keyname in regKey.GetValueNames())
                        {
                            regKey.DeleteValue(keyname);
                        }
                    }
                }
                if (delete)
                {
                    lstvRecentProjects.Refresh();
                    foreach (ListViewItem item in lstvRecentProjects.Items)
                    {
                        int key = item.Index + 1;
                        string keyname = name + key.ToString();
                        regKey.SetValue(keyname, item.SubItems[1].Text, 
                              (RegistryValueKind)item.Tag);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Exception: " + ex.Message + 
                        "\r\nPlease report this Exception, " +
                        "mail to carlosaraiva@gmail.com!", "Exception", 
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
            }
        }

History

  • 25th May, 2007: Initial post
  • 24th April, 2008: Article updated

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Carlos Saraiva Jr.


Carlos Saraiva Jr. is a Developer and works with C#, VB, Javascript, ASP.NET, WPF, WCF, SQL Server 2005/2008, Oracle, in a Web, Windows Forms, Windows Services using Visual Studio 2005/2008.
Occupation: Software Developer
Location: Brazil Brazil

Other popular C# articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 9 of 9 (Total in Forum: 9) (Refresh)FirstPrevNext
GeneralExpress EditionsmemberDaveyM697:14 30 Apr '08  
QuestionVS 2008memberjackmos5:19 16 Dec '07  
GeneralRe: VS 2008memberCarlos Saraiva Jr.5:13 24 Apr '08  
GeneralThanksmemberErsin Ersoy9:47 17 Nov '07  
GeneralThanksmemberranunes2:19 3 Oct '07  
GeneralThank Youmembermerlin9814:25 29 May '07  
GeneralThanksmembersides_dale19:23 25 May '07  
AnswerRe: Thanksmembersides_dale20:09 25 May '07  
AnswerRe: Thanksmembersides_dale20:39 25 May '07  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 25 Apr 2008
Editor: Deeksha Shenoy
Copyright 2007 by Carlos Saraiva Jr.
Everything else Copyright © CodeProject, 1999-2008
Web15 | Advertise on the Code Project