net 操作Windows注册表

虽然微软已经推出Windows家族的Active Directory的很多优点,但注册表依旧是Windows机器的活力源泉。注册表用于存储软件安装数据,正如存储文件相关信息和特定用户信息一样。过去,对注册表的操作往往与使用Windows API有关。对于当前的多数情况,.NET框架能够通过提供更加容易的注册表访问而简化了注册表的操作过程。
注册表
 
[code]<SCRIPT language=JavaScript1.1 src=" http://ad.cn.doubleclick.net/adj/messagingplus.zdnet.com.cn/developer/design;sz=1x1;ord=1524865360?"> <script>[/code][code]<SCRIPT src=" http://m.cn.2mdn.net/879366/flashwrite_1_2.js"><script>[/code]<Script language=VBScript>dcmaxversion = 9dcminversion = 8DoOn Error Resume Nextplugin = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & dcmaxversion & "")))If plugin = true Then Exit Dodcmaxversion = dcmaxversion - 1Loop While dcmaxversion >= dcminversion</Script>  
注册表作为一台计算机程序和Windows信息的仓库中心,其结构组织为分等级形式,而这一分等级形式是以一个具有存储信息的单元的逻辑顺序为基础。当在注册表中存储信息时,根据要存储的信息类型选择合适的位置。Windows包含一个名为注册表编辑器Registry Editor (regedit.exe)的工具,你可以使用这一工具来查看或者操作注册表数据。当浏览注册表时,你将注意到键的等级种类以及它们的值。(一句警告的话:在编辑注册表数据的时候一定格外小心,因为你会有可能影响到操作系统或者程序。在保存任何注册表编辑更改之前,请确保做一个校验的备份。)一个注册表具有以下最高等级的键值:
KKEY_CLASSES_ROOT:这一键包括文件扩展相关信息和COM类注册信息,比如ProgIDs, CLSIDs, 以及IIDs。其主要目的是使系统兼容于16位Windows的注册表。
HKEY_CURRENT_USER:这一键包含与HKEY_USERS中的安全特性标识符列举的信息类似。HKEY_CURRENT_USER的任何改变都立即引起HKEY_USERS的改变,反之亦然。
HKEY_LOCAL_MACHINE:这一键存储计算机的系统信息,并包含从软件设置到网络及硬件配置的所有信息。这些配置与用户无关,因为这些设置必须适用于使用机器的所有用户。
HKEY_USERS:这一键保存使用操作系统和程序的所有用户。
HKEY_CURRENT_CONFIG:这一键针对于存储在HKEY_LOCAL_MACHINE/Config/000x键的设置集合中的当前计算机配置,而HKEY_LOCAL_MACHINE/Config/000x键包含着当前硬件配置信息(x表示配置数目)。 这些都是微软操作系统中的基本的键。你可以使用你最喜爱的.NET语言来操作注册表。
Windows.Win32名称空
.NET Windows.Win32名称空间提供了操作一个Windows注册表的所有信息,以下是它用于操作注册表的类:
Registry:提供查找Windows机器中注册表的一套标准根部键。
RegistryKey:代表Windows注册表的一个键等级节点。 注册表类提供了能够对不同键的访问:
CurrentUser: 操作HKEY_CURRENT_USER键
LocalMachine: 操作HKEY_LOCAL_MACHINE键
ClassesRoot: 操作HKEY_CLASSES_ROOT键
Users: 操作HKEY_USERS键
CurrentConfig: 操作HKEY_CURRENT_CONFIG键
PerformanceData:提供软件组件的性能信息
DynData: 处理动态数据
例如,你可以使用以下代码来访问HKEY_CURRENT_USER键:
using System;using Microsoft.Win32;namespace RegDemo {class Reg {public static void Main() {RegistryKeyregk = Registry.CurrentUser;DisplayKeys(regk);}static void DisplayKeys(RegistryKeyregkey) {try {String [] names = regkey.GetSubKeyNames();Console.WriteLine("Subkeys of " + regkey.Name);foreach (String subkey in names) {Console.WriteLine(subkey);foreach (string vName in regkey.GetValueNames()) {if (regkey.GetValue(vName) != null) {Console.WriteLine(vName + " : " + regkey.GetValue(vName).ToString());} }DisplayKeys(regkey.OpenSubKey(subkey));}} catch (Exception e) {Console.WriteLine("Exception: " + e.ToString());} } } }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值