惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
爱范儿
爱范儿
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
宝玉的分享
宝玉的分享
GbyAI
GbyAI
H
Help Net Security
A
About on SuperTechFans
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
D
Docker
博客园 - Franky
有赞技术团队
有赞技术团队
G
Google Developers Blog

博客园 - 随风

释放C盘空间的27招优化技巧 数据库索引应用(ms-sql) 使用命令行导入导出方案(oracle) 使用C#调用DTS包 网页效果集合(小技巧) - 随风 - 博客园 ORACLE常用傻瓜問題1000問 网络命令一览表 自定义应用程序配置文件(app.config) XmlHttp异步获取网站数据 - 随风 - 博客园 页面无刷新获取数据的几种方式浅析 利用XMLHTTP无刷新添加数据 利用XMLHTTP无刷新自动实时更新数据 数据完整性管理 推模式中的水晶报表参数赋值 C#图像处理 有关打印、收藏等的JS代码(打印等主要使用了一个IE组件来实现) 对虚拟目录的操作 SOS!! 求助 如何在asp.net中保存用户状态
C#操作注册表
随风 · 2005-03-03 · via 博客园 - 随风

以下从‘读’‘写’‘删除’‘判断’四个事例实现对注册表的简单操作
1.读取指定名称的注册表的值
private string GetRegistData(string name)
{
   string registData;
   RegistryKey hkml = Registry.LocalMachine;
   RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
   RegistryKey aimdir = software.OpenSubKey("XXX",true);
   registData = aimdir.GetValue(name).ToString();
   return registData;
}
以上是读取的注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下的XXX目录中名称为name的注册表值;

2.向注册表中写数据
private void WTRegedit(string name,string tovalue)
{
   RegistryKey hklm = Registry.LocalMachine;
   RegistryKey software = hklm.OpenSubKey("SOFTWARE",true);
   RegistryKey aimdir = software.CreateSubKey("XXX");
   aimdir.SetValue(name,tovalue);
}
以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下新建XXX目录并在此目录下创建名称为name值为tovalue的注册表项;

3.删除注册表中指定的注册表项
private void DeleteRegist(string name)
{
   string[] aimnames;
   RegistryKey hkml = Registry.LocalMachine;
   RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
   RegistryKey aimdir = software.OpenSubKey("XXX",true);
   aimnames = aimdir.GetSubKeyNames();
   foreach(string aimKey in aimnames)
   {
    if(aimKey == name)
     aimdir.DeleteSubKeyTree(name);
   }
}
以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下XXX目录中删除名称为name注册表项;

4.判断指定注册表项是否存在
private bool IsRegeditExit(string name)
{
   bool _exit = false;
   string[] subkeyNames;
   RegistryKey hkml = Registry.LocalMachine;
   RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
   RegistryKey aimdir = software.OpenSubKey("XXX",true);
   subkeyNames = aimdir.GetSubKeyNames();
   foreach(string keyName in subkeyNames)
   {
    if(keyName == name)
    {
       _exit = true;
       return _exit;
    }
   }
   return _exit;
}
以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下XXX目录中判断名称为name注册表项是否存在,这一方法在删除注册表时已经存在,在新建一注册表项时也应有相应判断;