用C#寫的一個注冊表操作類


該類實現了注冊表讀取、寫入、刪除、查找等功能。

實現代碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;

namespace TagReceiver
{
    class RegistryHelper
    {
        /// <summary>
        /// 讀取指定名稱的注冊表的值
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public string GetRegistryData(RegistryKey root, string subkey, string name) 
        { 
            string registData = ""; 
            RegistryKey myKey = root.OpenSubKey(subkey, true);
            if (myKey != null)
            {
                registData = myKey.GetValue(name).ToString();
            }

            return registData; 
        } 

        /// <summary>
        /// 向注冊表中寫數據
        /// </summary>
        /// <param name="name"></param>
        /// <param name="tovalue"></param> 
        public void SetRegistryData(RegistryKey root, string subkey, string name, string value) 
        { 
            RegistryKey aimdir = root.CreateSubKey(subkey); 
            aimdir.SetValue(name, value); 
        } 

        /// <summary>
        /// 刪除注冊表中指定的注冊表項
        /// </summary>
        /// <param name="name"></param>
        public void DeleteRegist(RegistryKey root, string subkey, string name) 
        { 
            string[] subkeyNames;
            RegistryKey myKey = root.OpenSubKey(subkey, true);
            subkeyNames = myKey.GetSubKeyNames();
            foreach (string aimKey in subkeyNames) 
            { 
                if(aimKey == name)
                    myKey.DeleteSubKeyTree(name); 
            } 
        } 

        /// <summary>
        /// 判斷指定注冊表項是否存在
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public bool IsRegistryExist(RegistryKey root, string subkey, string name) 
        { 
            bool _exit = false; 
            string[] subkeyNames; 
            RegistryKey myKey = root.OpenSubKey(subkey, true);
            subkeyNames = myKey.GetSubKeyNames(); 
            foreach(string keyName in subkeyNames) 
            { 
                if(keyName == name) 
                { 
                    _exit = true; 
                    return _exit; 
                } 
            } 

            return _exit; 
        } 
    }
}

如何調用:

讀注冊表:

            RegistryHelper rh = new RegistryHelper();

            string portName = rh.GetRegistryData(Registry.LocalMachine, "SOFTWARE\\TagReceiver\\Params\\SerialPort", "PortName");
寫注冊表:

            RegistryHelper rh = new RegistryHelper();
            rh.SetRegistryData(Registry.LocalMachine, "SOFTWARE\\TagReceiver\\Params\\SerialPort", "PortName", portName);

所有代碼在WinXP SP3+VS2010下測試通過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM