C#读写注册表操作类,一共包括三个方法. 1. 写注册表 2.修改注册表 3.判断键值是否存在
经测试,本操作类也适用于.net compact framework 2.0, windows mobile 平台的开发。
首先要引入命名空间
所有代码:
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这个键是否存在