【译文】Microsoft C# 概览之:C# 注册表操作

C# 注册表操作

原文:C# Tutorial and source code



如同单独的用户设置一样,注册表是一个可选的用来保存用户程序信息的位置。

注册表包含一些称为注册表单元(Hives)的逻辑段. 下面是系统使用的预定义的键.

  HKEY_CURRENT_USER

  HKEY_USERS

  HKEY_LOCAL_MACHINE

  HKEY_CLASSES_ROOT

  HKEY_CURRENT_CONFIG

每个键有很多的子键,并且可以有一个值。

在C#中编程,既可以使用C#提供的函数操作注册表,也可以通过.NET框架的注册表类操作注册表。.NET当中操作注册表,可以使用Microsoft.Win32命名空间中的两个类,Registry 类和RegistryKey 类。Registry类提供基本的注册表键作为共享的公用方法。

  using Microsoft.Win32;

新建一个注册表实体

  rKey = Registry.LocalMachine.OpenSubKey(“SOFTWARE”, true);

  rKey.CreateSubKey(“AppReg”);

上面的代码演示如何在HKLM\Software里新建一个名称为AppReg的子键。

删除子键

  rKey = Registry.LocalMachine.OpenSubKey(“Software”, true);

  rKey.DeleteSubKey(“AppReg”, true);

下面的C#演示如何新建一个注册表实体,并且赋值,从注册表取值,以及删除注册表的键。在窗体上新建四个按钮,并且拷贝粘贴下面的源代码。

using System;
using System.Data;
using System.Windows.Forms;
using Microsoft.Win32;
namespace WindowsFormsApplication1
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
		}

		private void button1_Click(object sender, EventArgs e)
		{
			RegistryKey rKey ;
			rKey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
			rKey.CreateSubKey("AppReg");
			rKey.Close();
			MessageBox.Show ("AppReg created !");
		}

		private void button2_Click(object sender, EventArgs e)
		{
			RegistryKey rKey ;
			rKey = Registry.LocalMachine.OpenSubKey("Software\\AppReg", true);
			rKey.SetValue("AppName", "RegApp");
			rKey.SetValue("Version", 1.1);
			rKey.Close();
			MessageBox.Show("Appname , version created");
		}

		private void button3_Click(object sender, EventArgs e)
		{
			RegistryKey rKey ;
			Object  ver ;
			string app = null;
			rKey = Registry.LocalMachine.OpenSubKey("Software\\AppReg", true);
			app = (string)rKey.GetValue("AppName");
			ver =  rKey.GetValue("Version");
			rKey.Close();
			MessageBox.Show("App Name  " + app + "  Version  " + ver.ToString());
		}

		private void button4_Click(object sender, EventArgs e)
		{
			RegistryKey rKey ;
			rKey = Registry.LocalMachine.OpenSubKey("Software", true);
			rKey.DeleteSubKey("AppReg", true);
			rKey.Close();
			MessageBox.Show("AppReg deleted");
		}
	}
}

本文译自http://csharp.net-informations.com/

更准确内容,请访问作者原文。

此条目发表在程序开发分类目录,贴了, , , 标签。将固定链接加入收藏夹。