Search the Windows Registry - CSharp Operating System

CSharp examples for Operating System:Windows

Description

Search the Windows Registry

Demo Code


using System;//from www.j  a va 2s.  c o  m
using Microsoft.Win32;

class MainClass
    {
        public static void SearchSubKeys(RegistryKey root, String searchKey)
        {
            try
            {
                string[] subkeys = root.GetSubKeyNames();
                foreach (string keyname in subkeys)
                {
                    try
                    {
                        using (RegistryKey key = root.OpenSubKey(keyname))
                        {
                            if (keyname == searchKey) PrintKeyValues(key);
                            SearchSubKeys(key, searchKey);
                        }
                    }
                    catch (System.Security.SecurityException)
                    {
                    }
                }
            }
            catch (UnauthorizedAccessException)
            {
            }

        }

        public static void PrintKeyValues(RegistryKey key)
        {
            Console.WriteLine("Registry key found : {0} contains {1} values", key.Name, key.ValueCount);
            foreach (string valuename in key.GetValueNames())
            {
                if (key.GetValue(valuename) is String)
                {
                    Console.WriteLine("  Value : {0} = {1}",
                        valuename, key.GetValue(valuename));
                }
            }
        }

        public static void Main(String[] args)
        {
            if (args.Length > 0)
            {
                using (RegistryKey root = Registry.CurrentUser)
                {
                    // Search recursively through the registry for any keys
                    // with the specified name.
                    SearchSubKeys(root, args[0]);
                }
            }
        }
    }

Related Tutorials