C#操作注册表-阿里云开发者社区

开发者社区> 开发与运维> 正文

C#操作注册表

简介:
名字空间Microsoft.Win32

以下从‘读’‘写’‘删除’‘判断’四个事例实现对注册表的简单操作 
1.读取指定名称的注册表的值 
 1None.gifprivate string GetRegistData(string name) 
 2ExpandedBlockStart.gifContractedBlock.gifdot.gif
 3InBlock.gif   string registData; 
 4InBlock.gif   RegistryKey hkml = Registry.LocalMachine; 
 5InBlock.gif   RegistryKey software = hkml.OpenSubKey("SOFTWARE",true); 
 6InBlock.gif   RegistryKey aimdir = software.OpenSubKey("XXX",true); 
 7InBlock.gif   registData = aimdir.GetValue(name).ToString(); 
 8InBlock.gif   return registData; 
 9ExpandedBlockEnd.gif}
 
10None.gif以上是读取的注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下的XXX目录中名称为name的注册表值; 
11None.gif
12None.gif2.向注册表中写数据 
13None.gifprivate void WTRegedit(string name,string tovalue) 
14ExpandedBlockStart.gifContractedBlock.gifdot.gif
15InBlock.gif   RegistryKey hklm = Registry.LocalMachine; 
16InBlock.gif   RegistryKey software = hklm.OpenSubKey("SOFTWARE",true); 
17InBlock.gif   RegistryKey aimdir = software.CreateSubKey("XXX"); 
18InBlock.gif   aimdir.SetValue(name,tovalue); 
19ExpandedBlockEnd.gif}
 
20None.gif以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下新建XXX目录并在此目录下创建名称为name值为tovalue的注册表项; 
21None.gif
22None.gif3.删除注册表中指定的注册表项 
23None.gifprivate void DeleteRegist(string name) 
24ExpandedBlockStart.gifContractedBlock.gifdot.gif
25InBlock.gif   string[] aimnames; 
26InBlock.gif   RegistryKey hkml = Registry.LocalMachine; 
27InBlock.gif   RegistryKey software = hkml.OpenSubKey("SOFTWARE",true); 
28InBlock.gif   RegistryKey aimdir = software.OpenSubKey("XXX",true); 
29InBlock.gif   aimnames = aimdir.GetSubKeyNames(); 
30InBlock.gif   foreach(string aimKey in aimnames) 
31ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif
32InBlock.gif    if(aimKey == name) 
33InBlock.gif     aimdir.DeleteSubKeyTree(name); 
34ExpandedSubBlockEnd.gif   }
 
35ExpandedBlockEnd.gif}
 
36None.gif以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下XXX目录中删除名称为name注册表项; 
37None.gif
38None.gif4.判断指定注册表项是否存在 
39None.gifprivate bool IsRegeditExit(string name) 
40ExpandedBlockStart.gifContractedBlock.gifdot.gif
41InBlock.gif   bool _exit = false
42InBlock.gif   string[] subkeyNames; 
43InBlock.gif   RegistryKey hkml = Registry.LocalMachine; 
44InBlock.gif   RegistryKey software = hkml.OpenSubKey("SOFTWARE",true); 
45InBlock.gif   RegistryKey aimdir = software.OpenSubKey("XXX",true); 
46InBlock.gif   subkeyNames = aimdir.GetSubKeyNames(); 
47InBlock.gif   foreach(string keyName in subkeyNames) 
48ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif
49InBlock.gif    if(keyName == name) 
50ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif
51InBlock.gif       _exit = true
52InBlock.gif       return _exit; 
53ExpandedSubBlockEnd.gif    }
 
54ExpandedSubBlockEnd.gif   }
 
55InBlock.gif   return _exit; 
56ExpandedBlockEnd.gif}
 
57None.gif


以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下XXX目录中判断名称为name注册表项是否存在,这一方法在删除注册表时已经存在,在新建一注册表项时也应有相应判断; 




本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2005/09/06/231361.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章