现在的位置: 首页 > 综合 > 正文

C#读写注册表操作类

2013年09月27日 ⁄ 综合 ⁄ 共 2693字 ⁄ 字号 评论关闭

C#读写注册表操作类,一共包括三个方法. 1. 写注册表 2.修改注册表 3.判断键值是否存在
经测试,本操作类也适用于.net compact framework 2.0, windows mobile 平台的开发。

首先要引入命名空间

 程序代码
using Microsoft.Win32;

所有代码:

程序代码
using System;
using System.Collections.Generic;
using Microsoft.Win32;

namespace  Register
{
    public class RegisterOperate
    {

        /**/
        /// <summary>
        /// 写入注册表
        /// </summary>
        /// <param name="strName"></param>
        public static void SetRegEditData(string strName, string strValue)
        {
            try
            {
                RegistryKey hklm = Registry.LocalMachine;
                RegistryKey software = hklm.OpenSubKey("SOFTWARE", true);
                RegistryKey aimdir = software.CreateSubKey("MySoftware");
                aimdir.SetValue(strName, strValue);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

        }

        /**/
        /// <summary>
        /// 修改注册表项
        /// </summary>
        /// <param name="strName"></param>
        /// <param name="strValue"></param>
        public static void ModifyRegEditData(string strName, string strValue)
        {
            try
            {
                RegistryKey hklm = Registry.LocalMachine;
                RegistryKey software = hklm.OpenSubKey("SOFTWARE\\MySoftware", true);
                software.SetValue(strName, strValue);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

        /**/
        /// <summary>
        /// 判断指定注册表项是否存在
        /// </summary>
        /// <param name="strName"></param>
        /// <returns></returns>
        public static bool IsExist(string strName)
        {
            try
            {
                bool exit = false;
                string[] subkeyNames;
                RegistryKey hkml = Registry.LocalMachine;
                RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
                RegistryKey aimdir = software.OpenSubKey("MySoftware", true);
                subkeyNames = aimdir.GetValueNames();
                foreach (string keyName in subkeyNames)
                {
                    if (keyName == strName)
                    {
                        exit = true;
                        return exit;
                    }
                }
                return exit;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
        }

    }
}

使用本类:

RegisterOperate.SetRegEditData("KeyName","KeyValue")
//在HKEY_LOCAL_MACHINE\Software\MySoftware下面创建KeyName这个键

RegisterOperate.ModifyRegEditData("KeyName","KeyValue")
//修改HKEY_LOCAL_MACHINE\Software\MySoftware下面KeyName这个键的键值

RegisterOperate.IsExist("KeyName")
//判断HKEY_LOCAL_MACHINE\Software\MySoftware下面KeyName这个键是否存在

抱歉!评论已关闭.