要操作注册表,我们必须要引入必要的命名空间:using Microsoft.Win32;
(1)读注册表
object displayName = null, displayVersion = null;
RegistryKey currentKey = null;
RegistryKey pregkey = Registry.LocalMachine.OpenSubKey(@"XXXXXXXX");//获取指定路径下的键
try
{
foreach (string item in pregkey.GetSubKeyNames()) //循环所有子键
{
currentKey = pregkey.OpenSubKey(item);
displayName = currentKey.GetValue("DisplayName"); //获取显示名称
displayVersion = currentKey.GetValue("DisplayVersion"); //获取卸载字符串路径
//其他操作···············
}
}
catch (Exception E)
{
MessageBox.Show(E.Message.ToString());
}
(2)写注册表
RegistryKey local_internet = Registry.CurrentUser.OpenSubKey(@"XXXXXXX", true);//获取指定路径下的键 修改权限
try
{
//1提示 3禁用 下载已签名的 ActiveX 控件
local_internet.SetValue("1001", 0);
//其他操作······································
}
catch (Exception E)
{
MessageBox.Show(E.Message.ToString());
}
其中需要注意的是,有些注册表的操作关系到权限的问题,这时候需要使用
CurrentUser.OpenSubKey(@"XXXXXXX", true); 这样的方法获取权限