C# 注册表基本操作

// 判断项是否存在

 private static bool IsRegeditItemExist(Microsoft.Win32.RegistryKey RegBoot, string ItemName)
 {
     if (ItemName.IndexOf("\\") <= -1)
     {
     string[] subkeyNames;
     subkeyNames = RegBoot.GetValueNames();
     foreach (string ikeyName in subkeyNames)   // 遍历整个数组
     {
     if (ikeyName == ItemName)  // 判断子项的名称
     {
     return true;
     }
     }
     return false;
     }
     else
     {
     string[] strkeyNames = ItemName.Split('\\');
     Microsoft.Win32.RegistryKey _newsubRegKey = RegBoot.OpenSubKey(strkeyNames[0]);
     string _newRegKeyName = "";
     int i;
     for (i = 1; i < strkeyNames.Length; i++)
     {
     _newRegKeyName = _newRegKeyName + strkeyNames[i];
     if (i != strkeyNames.Length - 1)
     {
     _newRegKeyName = _newRegKeyName + "\\";
     }
     }
     return IsRegeditItemExist(_newsubRegKey, _newRegKeyName);
     }
 }

// 判断键值是否存在

private static bool IsRegeditKeyExist(Microsoft.Win32.RegistryKey RegBoot, string RegKeyName)
{
    string[] subkeyNames;
    subkeyNames = RegBoot.GetValueNames();
    foreach (string keyName in subkeyNames)
    {

    if (keyName == RegKeyName)   // 判断键值的名称
    {
    return true;
    }
    }
    return false;
}

//读取注册表指定键值

public static string ReadRegedit(string RegKeyName)
{
    Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser;


    if (!IsRegeditItemExist(key.OpenSubKey("software\\ThirdParty\\"), "Register.INI"))
    {
    // 创建
    Microsoft.Win32.RegistryKey software = key.CreateSubKey("software\\ThirdParty");
    // 打开(true表示可以写入)
    software = key.OpenSubKey("software\\ThirdParty", true);
    Microsoft.Win32.RegistryKey ThirdPartyReg = software.CreateSubKey("Register.INI");
    // 记得关闭,两个都要关
    key.Close();
    ThirdPartyReg.Close();
    }
    if (!IsRegeditKeyExist(key.OpenSubKey("software\\ThirdParty\\Register.INI"), RegKeyName))
    {
    Microsoft.Win32.RegistryKey Register = key.OpenSubKey("SOFTWARE\\ThirdParty\\Register.INI", true);
    // 写入
    Register.SetValue(RegKeyName, "");
    // 关闭
    Register.Close();
    key.Close();
    }
    //判断软件是否注册
    Microsoft.Win32.RegistryKey retkey = key.OpenSubKey("SOFTWARE\\ThirdParty\\Register.INI", true);
    string str = retkey.GetValue(RegKeyName).ToString();
    retkey.Close();
    key.Close();
    return str;

}

//写入指定键值

public static bool SetRegedit(string RegKeyName, string Value)
{
    Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser;


    if (!IsRegeditItemExist(key.OpenSubKey("software\\ThirdParty\\"), "Register.INI"))
    {
    // 创建
    Microsoft.Win32.RegistryKey software = key.CreateSubKey("software\\ThirdParty");
    // 打开(true表示可以写入)
    software = key.OpenSubKey("software\\ThirdParty", true);
    Microsoft.Win32.RegistryKey ThirdPartyReg = software.CreateSubKey("Register.INI");

    // 记得关闭,两个都要关
    key.Close();
    ThirdPartyReg.Close();
    }
    if (!IsRegeditKeyExist(key.OpenSubKey("software\\ThirdParty\\Register.INI"), RegKeyName))
    {
    Microsoft.Win32.RegistryKey Register = key.OpenSubKey("SOFTWARE\\ThirdParty\\Register.INI", true);
    // 写入
    Register.SetValue(RegKeyName, "");
    // 关闭
    Register.Close();
    key.Close();
    }
    //判断软件是否注册
    Microsoft.Win32.RegistryKey retkey = key.OpenSubKey("SOFTWARE\\ThirdParty\\Register.INI", true);
    // 写入
    retkey.SetValue(RegKeyName, Value);
    retkey.Close();
    key.Close();
    return true;

}

//网络素材仅限收藏 方便学习

posted @ 2021-06-07 13:14  New_HackerHK  阅读(78)  评论(0编辑  收藏  举报