.NET 學習

.NET 學習生活感想... 万事成蹉跎..... 贵在坚持 及时整理自己做过和学过的东西

博客园 首页 新随笔 联系 订阅 管理
using Microsoft.Win32;



Creating SubKeys in the registry



We create a subkey by using the CreateSubKey method. We usually want to create a subkey in HKEY_CURRENT_USER/SOFTWARE that is why we use the following code:

 


RegistryKey reg = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Geekpedia\\Test");



Adding values to SubKeys



Now we can add a value to the subkey by using the following piece of code:

 


reg.SetValue("URL", "http://www.geekpedia.com");



As you can see, the code is rather straightforward. We create a value with the name 'URL' and the data 'http://www.geekpedia.com'.

Retrieving data



Further, we shall retrieve the value we just added and store it in a string variable:

 


string URL = (string)reg.GetValue("URL");



...and display the output:


Console.WriteLine("Before: " + URL);



Changing the values



We change the value of 'reg'. We specify the same path, but now we also add a 'true' boolean at the end. That means we use the overloaded method and 'true' means we want the path in write mode.
The overloaded method prototype is:

 


public RegistryKey OpenSubKey(string name, bool writable);



And here is the code we use:


RegistryKey reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Geekpedia\\Test", true);



Because we opened the SubKey in write mode, we can modify the data:


reg.SetValue("URL", "about:blank");



and store it again in the same variable:


URL = (string)reg.GetValue("URL");



...and display the output:


Console.WriteLine("After: " + URL);



And finally close the opened connection with the registry SubKey and flush:


reg.Close();



Finally, all the code put together looks like this:


using System;
using Microsoft.Win32;
class Class1
{
    [STAThread]
    static void Main(string[] args)
    {
        // Create a new SubKey or open it if already exists
        RegistryKey reg = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Geekpedia\\Test");
        // Add a new value to the SubKey
        reg.SetValue("URL", "http://www.geekpedia.com");
        // Store it in 'URL' variable
        string URL = (string)reg.GetValue("URL");
        // Display it
        Console.WriteLine("Before: " + URL);

        // Open the SubKey this time in write mode
        reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Geekpedia\\Test", true);
        // Change the value 'URL'
        reg.SetValue("URL", "about:blank");
        // Store it in the earlier variable
        URL = (string)reg.GetValue("URL");
        // Display it
        Console.WriteLine("After: " + URL);
        // Close the registry SubKey and flush
        reg.Close();
    }
}



Deleting SubKeys



For removing SubKeys from the registry you can use the method with the following prototype:

 


public void DeleteSubKey(string subkey);



And here is a hands-on example:


// Open SOFTWARE
RegistryKey reg = Registry.CurrentUser.OpenSubKey("SOFTWARE");
// Delete Geekpedia from SOFTWARE
reg.DeleteSubKeyTree("Geekpedia");
//Close the registry SubKey and flush
reg.Close();



If the key doesn't exist you will get a nasty exception. For ignoring the exception use the overloaded method:


public void DeleteSubKey(string subkey, bool throwOnMissingSubKey);



In our example this looks like this:


reg = Registry.CurrentUser.OpenSubKey("SOFTWARE", false);



Deleting Values



Deleting a value is similar to deleting a SubKey, it also has two prototypes:

 


public void DeleteValue(string name);
public void DeleteValue(string name, bool throwOnMissingValue);


Which act the same as in DeleteSubKey.
posted on 2009-01-06 17:13  Tonyyang  阅读(360)  评论(0编辑  收藏  举报
欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/