当前位置:文档之家› C_操作注册表

C_操作注册表

C_操作注册表
C_操作注册表

C#操作注册表简单方法实现

C#操作注册表方面前言:使用VC,VB等语言操作注册表的例子已经有很多了,其实在C#操作注册表更加的简单方便。下面的例子就提供了在C#里操作注册表的方法:

https://www.doczj.com/doc/ab998355.html,ing Microsoft.Win32;

2. //C#操作注册表

https://www.doczj.com/doc/ab998355.html,ing System.Diagnostics;

4.

5.private void Access_Registry()

6.

7.{

8.

9.// 在HKEY_LOCAL_MACHINESoftware下建立一新键,起名为MCBInc

10.

11.RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", true)

;

12.

13.// 增加一个子键

14.

15.RegistryKey newkey = key.CreateSubKey("MCBInc");

16.

17.

18.// 设置此子键的值

19.

20.newkey.SetValue("MCBInc", "NET Developer");

21.

22.// 从注册表的其他地方获取数据

23. //C#操作注册表

24.// 找出你的CPU

25.

26.RegistryKey pRegKey = Registry.LocalMachine;

27.

28.pRegKey = pRegKey.OpenSubKey("HARDWAREDESCRIPTIONSystemCentralProces

sor");

29.

30.Object val = pRegKey.GetValue("VendorIdentifier");

31.

32.Debug.WriteLine("The central processor of this machine is:"+ val);

33.

34.// 删除键值 ,C#操作注册表

35.

36.RegistryKey delKey = Registry.LocalMachine.OpenSubKey("Software", tr

ue);

37.

38.delKey.DeleteSubKey("MCBInc");

39.

40.}

C#操作注册表的简单例子就向你讲解到这里,希望对你学习和了解C#操作注册表有所帮助。

C#操作注册表之读取操作浅析C#操作注册表之读取操作是如何实现的呢?让我们开始吧:

读取指定名称的注册表的值

1.private string GetRegistData(string name)

2. //C#操作注册表之读取操作

3.{

4.

5.string registData;

6.

7.RegistryKey hkml =

8.

9.Registry.LocalMachine;

10.

11.

12.RegistryKey software =

13.

14.hkml.OpenSubKey("SOFTWARE",true);

15.

16. //C#操作注册表之读取操作

17.RegistryKey aimdir =

18.

19.software.OpenSubKey("XXX",true);

21.

22.registData = aimdir.

23.

24.GetValue(name).ToString();

25. //C#操作注册表之读取操作

26.

27.return registData;

28.

29.}

以上是读取的注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下的XXX目录中名称为name的注册表值;

C#操作注册表之写入操作浅析C#操作注册表之写入操作是如何实现的呢?让我们开始介绍吧:

向注册表中写数据

1.

2.private void WTRegedit(string name,string tovalue)

3. //C#操作注册表之写入操作

4.{

5.

6.RegistryKey hklm =

7.

8.Registry.LocalMachine;

9. //C#操作注册表之写入操作

10.

11.RegistryKey software =

12.

13.hklm.OpenSubKey("SOFTWARE",true);

14.

15.

16.RegistryKey aimdir =

17.

18.software.CreateSubKey("XXX");

19. //C#操作注册表之写入操作

21.aimdir.SetValue(name,tovalue);

22.

23.

24.}

以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下新建XXX目录并在此目录下创建名称为name值为tovalue的注册表项;

C#操作注册表之删除操作浅析

C#操作注册表之删除操作是如何实现的呢?让我们来看看具体的操作吧:

删除注册表中指定的注册表项

1.private void DeleteRegist(string name)

2. //C#操作注册表之删除操作

3.{

4.

5.string[] aimnames;

6.

7.RegistryKey hkml =

8.

9.Registry.LocalMachine;

10.

11.

12.RegistryKey software =

13.

14.hkml.OpenSubKey("SOFTWARE",true);

15. //C#操作注册表之删除操作

16.

17.RegistryKey aimdir =

18.

19.software.OpenSubKey("XXX",true);

20.

21.

22.aimnames = aimdir.

23.

24.GetSubKeyNames();

26.

27.foreach(string aimKey in aimnames)

28.

29.{

30. //C#操作注册表之删除操作

31.

32.if(aimKey == name)

33.

34.aimdir.DeleteSubKeyTree(name);

35.

36.}

37.

38.}

以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下XXX目录中删除名称为name 注册表项。

C#操作注册表之判断指定操作浅析C#操作注册表之判断指定操作是如何实现的呢?让我们来看看具体的实例演示:

判断指定注册表项是否存在

1.private bool IsRegeditExit(string name)

2. //C#操作注册表之判断指定操作

3.{

4.

5.bool _exit = false;

6.

7.string[] subkeyNames;

8.

9.RegistryKey hkml =

10.

11.Registry.LocalMachine;

12.

13.RegistryKey software =

14.

15.hkml.OpenSubKey("SOFTWARE",true);

16. //C#操作注册表之判断指定操作

17.RegistryKey aimdir =

18.

19.software.OpenSubKey("XXX",true);

20.

21.subkeyNames = aimdir.

22.

23.GetSubKeyNames();

24.

25.foreach(string keyName in subkeyNames)

26.

27.{

28.

29.if(keyName == name)

30.

31.{

32.

33._exit = true;

34.

35.return _exit;

36.

37.}

38. //C#操作注册表之判断指定操作

39.}

40.

41.return _exit;

42.

43.}

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

C#中操作注册表常用方法与函数浅析C#中操作注册表常用方法与函数都是什么呢?让我们开始一一介绍:

在VC#中提供了Registry类、RegistryKey类来实现对注册表的操作。

◆C#中操作注册表常用方法与函数之Registry类封装了注册表的七个基本主健:

Registry.ClassesRoot

对应于HKEY_CLASSES_ROOT主键

Registry.CurrentUser

对应于HKEY_CURRENT_USER主键

Registry.LocalMachine

对应于 HKEY_LOCAL_MACHINE主键

https://www.doczj.com/doc/ab998355.html,er

对应于 HKEY_USER主键

Registry.CurrentConfig

对应于HEKY_CURRENT_CONFIG主键

Registry.DynDa 对应于HKEY_DYN_DATA主键

Registry.PerformanceData 对应于HKEY_PERFORMANCE_DATA主键

RegistryKey类封装了对注册表的基本操作,包括读取,写入,删除。

◆C#中操作注册表常用方法与函数之读取的主要函数有:

OpenSubKey ( string name )方法

主要是打开指定的子键。

GetSubKeyNames ( )方法

是获得主键下面的所有子键的名称,它的返回值是一个字符串数组。

GetValueNames ( )方法

是获得当前子键中的所有的键名称,它的返回值也是一个字符串数组。

GetValue ( string name )方法

是指定键的键值。

◆C#中操作注册表常用方法与函数之写入的函数:

CreateSubKey(string name)方法

是增加一个子键

SetValue(string name,string value)方法

是设置一个键的键值

◆C#中操作注册表常用方法与函数之删除的函数:

DeleteSubKey ( )方法:

删除一个指定的子键。

DeleteSubKeyTree ( )方法:

此方法是彻底删除指定的子键目录,即:删除该子键以及该子键以下的全部子键。

C#操作注册表实例实践浅析

C#操作注册表实例实践需要注意什么呢?那开始我们的讲解吧:在下面的例子里,要注意:

建项函数:CreateSubKey()

建子键函数:SetValue();

1.class Program

2. //C#操作注册表实例实践

3.{

4.

5.static string Generateguid()//建立GUID值的函数

6.{

7.return System.Guid.NewGuid().ToString();

8.}

9.static void Main(string[] args)

10.{

11.RegistryKey pregkey;

12.string preName;

13.//pregkey = Registry.CurrentUser.OpenSubKey(

14."Control Panel\\Desktop\\WindowMetrics",true);

15.pregkey = Registry.LocalMachine.OpenSubKey(

16."SOFTWARE\\Microsoft\\Internet Explorer\\Extensions",true);

17.//以只读方式检索子项

18.if (pregkey == null)

19.{

20.Console.WriteLine("该键值不存在");

21.

22.} //C#操作注册表实例实践

23.else

24.{

25.preName = Generateguid();

26.Console.WriteLine(preName);

27.Console.WriteLine("找到该键值");

28.preName = "{" + preName + "}";

29.//pregkey.SetValue("MinAnimate","1");

30.pregkey.CreateSubKey(preName);

31.//建立子项

32.pregkey = Registry.LocalMachine.OpenSubKey(

33."SOFTWARE\\Microsoft\\Internet Explorer\\Extensions\\"+preName,

34.true);

35.//pregkey.SetValue("bbbbb", "0");

36.//建立子键,如果有此子键,则设值。

37.pregkey.SetValue("ButtonText", "添加");

38.//鼠标放到bar上时显示的文字

39.pregkey.SetValue("CLSID",

40."{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}");

41.//CLSID固定

42.pregkey.SetValue("Default Visible", "yes");

43.//默认可看见 ,C#操作注册表实例实践

44.pregkey.SetValue("Exec", "D:/IEbar/IEpinout.exe");

45.//关联的exe文件

46.pregkey.SetValue("HotIcon", "D:/IEbar/Icon2.ico");

47.//鼠标放到bar上时显示的图样

48.pregkey.SetValue("Icon", "D:/IEbar/Icon1.ico");

49.//鼠标未放在bar上时显示的图样

50.//pregkey.SetValue("MenuStatusBar", "杨");

51.//pregkey.SetValue("MenuText", "我是杨!");

52.

53.} //C#操作注册表实例实践

54.pregkey.Close();

55.}

56.}

此例子在vs2005,xp系统下调试通过。

生成exe文件,直接运行,然后打开ie查看工具栏上的效果。

注意:必需要有"D:/IEbar/Icon2.ico"和"D:/IEbar/Icon1.ico"这两个文件,否则在ie上看不出效果。

C#中操作注册表的五大主键浅析

C#中操作注册表的五大主键:Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的,其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,

HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG。

下面我们来分别解释C#中操作注册表的五大主键

◆C#中操作注册表的五大主键之HKEY_CLASSES_ROOT

该主键包含了文件的扩展名和应用程序的关联信息以及Window Shell和OLE用于储存注册表的信息。该主键下的子键决定了在WINDOWS中如何显示该类文件以及他们的图标,该主键是从HKEY_LCCAL_MACHINE\SOFTWARE\Classes映射过来的。

◆C#中操作注册表的五大主键之HKEY_CURRENT_USER

该主键包含了如用户窗口信息,桌面设置等当前用户的信息。

◆C#中操作注册表的五大主键之HKEY_LOCAL_MACHINE主键

包含了计算机软件和硬件的安装和配置信息,该信息可供所有用户使用

◆C#中操作注册表的五大主键HKEY_USERS

该主键记录了当前用户的设置信息,每次用户登入系统时,就会在该主键下生成一个与用户登入名一样的子键,该子键保存了当前用户的桌面设置、背景位图、快捷键,字体等信息。一般应用程序不直接访问改主键,而是通过主键HKEY_CURRENT_USER进行访问。

◆C#中操作注册表的五大主键HKEY_CURRENT_CONFIG

该主键保存了计算机当前硬件的配置信息,这些配置可以根据当前所连接的网络类型或硬件驱动软件安装的改变而改变。

C#也支持对注册表的编辑,.NET框架在Microsoft.Win32名字空间中提供了两个类来操作注册表:Registry和RegistryKey。这两个类都是密封类不允许被继承。下面我们分别来介绍这两个类。

Registry类提供了7个公共的静态域,分别代表7个基本主键(其中两个在XP系统中没有,在这就不介绍了)分别是:

Registry.ClassesRoot,Registry.CurrentUser,Registry.LocalMachine,https://www.doczj.com/doc/ab998355.html,ers,Registry.CurrentConfig。它们分别对应哪几个键我想各位一看就会知道吧。

RegistryKey类中提供了对注册表操作的方法。要注意的是操作注册表必须符合系统权限,否则将会抛出错误。

C#操作注册表常用方法详解

C#操作注册表常用方法有哪些呢?下面我们就来几个操作注册表常用的几个方法:

C#操作注册表常用方法之创建子键的方法原型为:

1.public RegistryKey CreateSubKey(string sunbkey);

参数sunbkey表示要创建的子键的名称或路径名。创建成功返回被创建的子键,否则返回null。

C#操作注册表常用方法之打开子键的方法原型为:

2.public RegistryKey OpenSubKey(string name);

3.public RegistryKey OpenSubKey(string name,bool writable);

参数name表示要打开的子键名或其路径名,参数writable表示被打开的子键是否允许被修改,第一个方法打开的子键是只读的。Microsoft.Win32类还为我们提供了另一个方法,用于打开远程计算机上的注册表,方法原型为:

4.public static RegistryKey OpenRemoteBaseKey(RegistryHive hKey,string

machineName);

C#操作注册表常用方法之删除子键的方法原型为:

5.public void DeleteKey(string subkey);

该方法用于删除指定的主键。如果要删除的子键还包含主键则删除失败,并返回一个异常,如果要彻底删除该子键极其目录下的子键可以用方法DeleteSubKeyTree,该方法原型如下:

6.public void DeleteKeyTree(string subkey);

C#操作注册表常用方法之读取键值的方法原型如下:

7.public object GetValue(string name);

8.public object GetValue(string name,object defaultValue);

参数name表示键的名称,返回类型是一个object类型,如果指定的键不存在则返回null。如果失败又不希望返回的值是null则可以指定参数defaultValue,指定了参数则在读取失败的情况下返回该参数指定的值。

C#操作注册表常用方法之设置键值的方法原型如下:

9.public object SetValue(string name,object value);

C#操作注册表常用方法的内容就向你介绍到这里,希望对你了解和学习C#操作注册表常用方法有所帮助。

Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的,其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG。

下面我们来分别解释这5个类的作用

HKEY_CLASSES_ROOT该主键包含了文件的扩展名和应用程序的关联信息以及Window Shell和OLE用于储存注册表的信息。该主键下的子键决定了在WINDOWS中如何显示该类文件以及他们的图标,该主键是从HKEY_LCCAL_MACHINE\SOFTWARE\Classes映射过来的。

HKEY_CURRENT_USER该主键包含了如用户窗口信息,桌面设置等当前用户的信息。

HKEY_LOCAL_MACHINE主键包含了计算机软件和硬件的安装和配置信息,该信息可供所有用户使用

HKEY_USERS该主键记录了当前用户的设置信息,每次用户登入系统时,就会在该主键下生成一个与用户登入名一样的子键,该子键保存了当前用户的桌面设置、背景位图、快捷键,字体等信息。一般应用程序不直接访问改主键,而是通过主键HKEY_CURRENT_USER进行访问。

HKEY_CURRENT_CONFIG该主键保存了计算机当前硬件的配置信息,这些配置可以根据当前所连接的网络类型或硬件驱动软件安装的改变而改变。

C#也支持对注册表的编辑,.NET框架在Microsoft.Win32名字空间中提供了两个类来操作注册表:Registry和RegistryKey。这两个类都是密封类不允许被继承。下面我们分别来介绍这两个类。

Registry类提供了7个公共的静态域,分别代表7个基本主键(其中两个在XP系统中没有,在这就不介绍了)分别是:Registry.ClassesRoot,Registry.CurrentUser,Registry.LocalMachine,https://www.doczj.com/doc/ab998355.html,ers,Registry.CurrentConfig。它们分别对应哪几个键我想各位一看就会知道吧。

RegistryKey类中提供了对注册表操作的方法。要注意的是操作注册表必须符合系统权限,否则将会抛出错误。

下面我们就来几个操作注册表常用的几个方法

创建子键的方法原型为:

public RegistryKey CreateSubKey(string sunbkey);

参数sunbkey表示要创建的子键的名称或路径名。创建成功返回被创建的子键,否则返回null。

打开子键的方法原型为:

public RegistryKey OpenSubKey(string name);

public RegistryKey OpenSubKey(string name,bool writable);

参数name表示要打开的子键名或其路径名,参数writable表示被打开的子键是否允许被修改,第一个方法打开的子键是只读的。Microsoft.Win32类还为我们提供了另一个方法,用于打开远程计算机上的注册表,方法原型为:

public static RegistryKey OpenRemoteBaseKey(RegistryHive hKey,string machineNa me);

删除子键的方法原型为:

public void DeleteKey(string subkey);

该方法用于删除指定的主键。如果要删除的子键还包含主键则删除失败,并返回一个异常,如果要彻底删除该子键极其目录下的子键可以用方法DeleteSubKeyTree,该方法原型如下:

public void DeleteKeyTree(string subkey);

读取键值的方法原型如下:

public object GetValue(string name);

public object GetValue(string name,object defaultValue);

参数name表示键的名称,返回类型是一个object类型,如果指定的键不存在则返回null。如果失败又不希望返回的值是null则可以指定参数defaultValue,指定了参数则在读取失败的情况下返回该参数指定的值。

设置键值的方法原型如下:

public object SetValue(string name,object value);

Top

.NET Framework 类库

Registry 成员请参见

Registry 类| Microsoft.Win32 命名空间| C++ 托管扩展编程

Registry 概述

公共字段

ClassesRoot 定义文档的类型(或类)以及与那些类型关联的属性。该字段读取Windows 注册表基项HKEY_CLASSES_ROOT。

CurrentConfig 包含有关非用户特定的硬件的配置信息。该字段读取Windows 注册表基

项HKEY_CURRENT_CONFIG。

CurrentUser 包含有关当前用户首选项的信息。该字段读取Windows 注册表基

项HKEY_CURRENT_USER

DynData 包含动态注册表数据。该字段读取Windows 注册表基项HKEY_DYN_DATA。LocalMachine 包含本地计算机的配置数据。该字段读取Windows 注册表基

项HKEY_LOCAL_MACHINE。

PerformanceData 包含软件组件的性能信息。该字段读取Windows 注册表基

项HKEY_PERFORMANCE_DATA。

Users 包含有关默认用户配置的信息。该字段读取Windows 注册表基项HKEY_USERS。

相关主题
文本预览
相关文档 最新文档