C#对注册表编程的支持

注册表基础知识请参阅本站文章:注册表学习教程

在应用程序安装时,常常需要利用注册表来登记应用程序的名字、运行路径、用户对应用程序的配置信息等。许多应用程序在运行时也常常需要访问注册表。

.Net框架结构在Microsoft.Win32名字空间内提供了两个类用于注册表操作:

Registry和RegistryKey。这两个类都是密封类,不允许被其它类继承。

Registry类中提供了7个公有的静态域,分别代表Windows注册表中的7个基本主键,它们是:

●Registry.ClassRoot,对应于HKEY_CLASSES_ROOT主键。

●Registry.CurrentUser,对应于HKEY_CURRENT_USER主键。

●Registry.LocalMachine,对应于HKEY_LOCAL_MACHINE主键。

●Registry.Users,对应于HKEY_USERS主键。

●Registry.CurrentConfig,对应于HKEY_CURRENT_CONFIG主键。

●Registry.DynDta,对应于HKEY_DYN_DATA主键。

●Registry.PerformanceData,对应于HKEY_PERFORMANCE_DATA主键。

RegistryKey类中封装了对Windows注册表的基本操作。对注册表的操作必须符合系统提供的权限,否则不能完成指定的操作,程序将抛出一个异常。

创建子键

创建子键的成员方法的原型为:

public RegistryKey CreateSubKey(string subkey);

其中,参数subkey表示要创建的子键的名字或子键的全路径名。如果创建成功,返回值就是被创建的子键,否则为null。

打开子键

打开子键的成员方法原型为:

public RegistryKey OpenSubKey(string name);

public RegistryKey OpenSubKey(string name,bool writable);

name参数表示要打开的子键名称或全路径名,Writable参数表示被打开的主键是否可以被修改。

第一个方法对打开的子键默认是只读的,如果希望对打开的主键进行写操作,使用第二个方法,并把writalbe参数值设为true.

名字空间Microsoft.Win32中还为我们提供了另一个方法,用于打开远程机器上的注册表进行操作。方法原型为:

public static RegistryKey OpenRemoteBaseKey(RegistryHive hKey,string machineName);

删除子键

DeleteSubKey方法用于删除指定的子键,方法原型为:

public void DeleteSubKey(string subkey);

使用DeleteSubKey方法时,如果子键之中还包含子键,则删除失败,并返回一个异常。如果要彻底删除子键目录,即删除子键以及子键以下的全部子键,可以使用DeleteSubKeyTree方法。该方法的原型为:

public void DeleteSubKeyTree(string subkey);

读取键值

读键的方法原型为:

public object GetValue(string name);

public object GetValue(string name,object defaultValue);

name参数表示键的名称,返回类型是一个object类型。如果方法中指定的键不存在,则方法返回一个null。我们在使用GetValue方法时,可以不必关心该键的值类型究竟是字符串、二进制还是DWORD类型,只要使用正确的返回类型就可以了。比如,我们希望读取一个字符串类型的键值,代码就可以这样写:

string s_value=key.GetValue("Type");

其中key表示一个主键。

如果不确定键值是否存在,而又不希望得到一个null返回值,那就使用第二个方法GetValue(string name,object defaultValue),其中的参数defaultValue表示默认的返回值。如果读取失败,返回值就是传递给参数defaultValue的值。

设置键值

设置键值的方法原型为:

public void SetValue(string name,object value);

同样,我们在使用该方法修改键值时,不用费心去分辨究竟该传递哪种值类型,方法将会识别是哪种类型,并把相应类型的值赋予指定的键。

时间: 2024-11-03 17:08:33

C#对注册表编程的支持的相关文章

C#注册表编程

18.1.1 注册表概述 Windows操作系统的注册表中包含了有关计算机运行方式的配置信息,其中包括Windows操作系统配置信息.应用程序配置信息.专用用户设置配置信息.环境配置信息等.另外,在WindowsNT和Windows2000操作系统中,注册表中还包含了安全性.网络管理等配置信息. 详细内容请参阅本站文章:注册表学习教程 18.1.2 C#对注册表编程的支持 18.1.3 注册表编程示例 示例一:修改"开始"菜单 示例二:在"新建"中添加自己的文件类型

C++Builder注册表编程实例详解

一.注册表编程详解 Windows 注册表中包含了系统配置.机器硬件配置. Win32 应用程序和用户的其他配置信息.许多高级一些的功能都要通过对注册表的操作来实现.在 WinAPI 中提供了 RegCgreateKey() . RegOpenKey() . RegQueryValue() 等函数操作注册表,但是用这些函数来操作注册表使用起来非常麻烦.而利用 C ++ Builder 的 TREGISTRY 类,我们则可以轻松实现对注册表的操作.下面我先介绍一下 TRegistry 类使用方法.

在DOS下对注册表编程

在DOS方式下也能对注册表进行编程?是的.当您的Windows95/98因注册表问题而无法启动到图形界面时,您此时只有在DOS下对注册表进行手术了.因为注册表编辑器Regedit.exe其实是一个双栖型的程序,既可在DOS下运行,也可在Windows95/98下运行.许多用户可能已经知道在Windows下使用Regedit的方法,那么,要掌握DOS方式下对注册表的编程,首先要了解在DOS下如何使用注册表编辑器. 在DOS提示符下键入Regedit命令,将出现一个帮助屏幕.此屏幕给出了其命令行参数

C#注册表编程示例一:修改“开始”菜单

我们知道,Windows文件存储采用的是树型目录结构,在这个结构中,Windows桌面代表的是最上面的一层.Windows注册表中对于桌面的设置,大都放在HKEY_USERS和HKEY_CURRENT_USER中.其中,"开始"菜单中的"运行"菜单,"查找"菜单,"设置"菜单中的"控制面板"和"打印机",都可以通过在HKEY_CURRENT_USER\\Software\\Microso

C#注册表编程示例二:在“新建”中添加自己的文件类型

下面的例子在桌面的右键快捷菜单中或在Windows资源管理器的"新建"中添加自己的文件类型.假设添加的是扩展名为".cs"的文件,说明文件为"cs files",默认文件的打开方式采用Windows中的写字板notepad.exe打开. 程序清单18-2: using System; using Microsoft.Win32; class RegTest { public static void Main() { RegistryKey key

Vbscript写注册表的方法_vbs

分类:程序 早些年用过DOS系统的用户都知道,MS-DOS操作系统允许普通用户编写批处理文件来实现简单的编程.它有效地简化了我们的工作,带给我们许多方便.当时甚至出现了一些专门编写批处理文件的程序员呢.  事实上,操作系统除了提供易于操作的使用界面外,还应当有一套内建的Script(脚本)语言才算完整.从某种角度来说,批处理文件可以说就是MS-DOS下的脚本语言.到了Windows时代,虽然Windows系统仍然保留了批处理,但是批处理在Windows中就显得功能过于简单,无法满足用户的需要了-

Visual C#来删除注册表中的注册信息

visual|注册表 在<用Visual C#读取注册信息>的文中,已经介绍了用 Visual C#来读取注册表中的注册信息.本文就来介绍用Visual C#对注册表的另外一个操作,这也是一个具有破坏性的操作过程--删除注册信息. 在上文中已经知道,由于Visual C#本身没有带类库,他对注册表的处理过程是通过调用.Net FrameWork SDK中的名称空间Microsoft.Win32中封装的二个类来实现的.这二个类就是Registry类.RegistryKey类.在 Registry

C# 32位程序访问64位系统注册表

原文:C# 32位程序访问64位系统注册表 我的上一篇文章已经阐述了"32位程序和64位程序在64位平台上读\写注册表的区别",那么接下来将要回答上篇所留下来的一个问题:32位程序如何访问64位系统注册表(即:64位程序所访问的注册表位置). 我们已经知道: ①:本机模式 64 位程序运行在纯模式下,并且访问键和存储在以下注册表子键中的值:HKEY_LOCAL_MACHINE\Software ②:32 位程序运行在 WOW64 模式下,并且访问键和值存储在以下注册表子项中:HKEY_

注册表操作(VC_Win32)

目录 注册表概述注册表相关函数详解注册表编程 注册表概述 概述 注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动.硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用.这些作用包括了软.硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件.首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述.状态和属性,性能记录和其他底层的系统状态信息,以