visualc#08 注册表

上传人:第*** 文档编号:52229218 上传时间:2018-08-19 格式:PPT 页数:23 大小:113KB
返回 下载 相关 举报
visualc#08 注册表_第1页
第1页 / 共23页
visualc#08 注册表_第2页
第2页 / 共23页
visualc#08 注册表_第3页
第3页 / 共23页
visualc#08 注册表_第4页
第4页 / 共23页
visualc#08 注册表_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《visualc#08 注册表》由会员分享,可在线阅读,更多相关《visualc#08 注册表(23页珍藏版)》请在金锄头文库上搜索。

1、8.2 注册表操作注册表是windows应用程序经常需要读写 的地方。注册表常常用来存放与应用程 序相关的配置信息8.2 注册表操作n在应用程序安装时,常常需要利用注册表来登 记应用程序的名称、运行路径、用户对应用程 序的配置信息等。许多应用程序在运行时也常 常需要访问注册表。nWindows操作系统的注册表包含了有关计算机 运行方式的配置信息,其中包括Windows操作 系统配置信息、应用程序配置信息、专用用户 设备配置信息和环境配置信息等。另外 windows2000和NT的注册表中还包含了安全性 网络管理等配置信息。n开始-运行-regedit打开注册表8.2.1 注册表结构n主键:注册

2、表编辑器左边树视图的各节 点称为主键,主键之间形成层次结构。n子键:主键的下一级主键称为该主键的 子键。主键可以包含一个或多个“键值”对 ,注册表编辑器右边出现的名称一栏就 是键,数据一栏为键值。8.2.1 注册表结构nHKEY_CLASSES_ROOTnHKEY_CURRENT_USERnHKEY_LOCAL_MACHINEnHKEY_USERSnHKEY_CURRENT_CONFIG 另外操作系统不同,注册表中的主键有可 能不同8.2.2 注册表操作相关类nRegistry:该类不可实例化,它作用只是 创建表示顶级键的RegistryKey实例nRegistryKey:封装了对Window

3、s注册表的 基本操作。对注册表的操作必须符合系 统提供的权限,否则不能完成制定的操 作,程序将抛出异常。8.2.3 注册表RegistrynRegistry类中提供了7个共有的静态域分别代表 注册表中的7个基本键nRegistry.ClassesRootnRegistry.CurrentUsernRegistry.LocalMachinenRegistry.UsersnRegistry.CurrentConfignRegistry.DynDtanRegistry.PerformanceData8.2.4 创建一个主键实例n创建顶级主键实例n RegistryKey reg=Registry.L

4、ocalMachine;n创建非顶级主键实例nRegistryKey reg=Registry.LocalMachine;nRegistryKey subKey= key.OpenSubKey(“SoftwareMicrosoft”);n注册表中的主键名和键名均不区分大小 写。8.2.5注册表基本操作n创建子键nCreateSubKey()方法用于创建子键或者打开 一个已存在的主键n例如,要在LocalMachine/Software/下创 建一个名称为MySoft的子键,代码如下nRegistry key=Registry.LocalMachine;nRegistry subKey=Key.

5、CreatesubKey(“SoftwareMyS oft”);8.2.5注册表基本操作n删除子键nDelete用于删除指定的子键,形式为public void DeleteSubKey (string subkey);n使用该方法时,如果子键之中还包含子键, 则删除失败,并返回一个异常。如果要彻底 删除子键及以下全部子键,要使用 DeleteSubKeyTree方法。 8.2.5注册表基本操作-读取键值nGetValue方法用于读取指定键的值。Public object GetValue(string name);n参数name用于指定键名,返回类型是一个 object类型,如果方法中指定的

6、键不存在则方 法返回一个空(null).n如果不确定键是否存在又不希望得到一个null 返回值,则可以使用第二个方法 GetValue(string name,object defaultValue),其 中参数defaultValue指定了一个默认的返回值 ,如果读取失败,则用这个默认的返回值代替 null.8.2.5注册表基本操作-设置键值nSetValue方法设置键值,public void SetValue(string name,object value)n其中参数name用于指定要设置的键,参 数value表示设置值8.2.5注册表基本操作-删除键nDeleteValue方法用于删

7、除键nPublic void DeleteValue(string name);8.2.6 注册表编程实例n在Windows应用程序中,许多窗体具有记忆功 能,当用户改变窗体大小之后,退出程序,下 次启动程序,窗体大小和上次退出前的大小一 样。对于窗体的记忆功能,实际上是在窗体关 闭前使用注册表来保存其大小信息,在窗体加 在适度去注册表中保存的值,来确定窗体初始 化显示的大小。n学习ch08-08的实例using System; using System.Drawing; using System.Collections; using System.ComponentModel; using

8、System.Windows.Forms; using System.Data; using Microsoft.Win32; namespace WindowsApplication8 / Form1 的摘要说明。 public class Form1 : System.Windows.Forms.Form / 必需的设计器变量。 private System.ComponentModel.Container components = null; public Form1() / Windows 窗体设计器支持所必需的 InitializeComponent(); / TODO: 在 Ini

9、tializeComponent 调用后添加其它/构造函数代码 / 清理所有正在使用的资源。 protected override void Dispose( bool disposing ) if( disposing ) if (components != null) components.Dispose(); base.Dispose( disposing ); #region Windows 窗体设计器生成的代码 / 设计器支持所需的方法 - 不要使用代码编辑器修改 / 此方法的内容。 private void InitializeComponent() / Form1 this.Au

10、toScaleBaseSize = new System.Drawing.Size(8, 18); this.ClientSize = new System.Drawing.Size(292, 260); this.Name = “Form1“; this.Text = “Form1“; this.Closing += new System.ComponentModel.CancelEventHandler( this.Form1_Closing); this.Load += new System.EventHandler(this.Form1_Load); #endregion/ / 应用程

11、序的主入口点。 / STAThread static void Main() Application.Run(new Form1(); private void Form1_Load(object sender, System.EventArgs e) RegistryKey key = Registry.LocalMachine; / 打开子键SoftwareMySoft,如不存在则创建 RegistryKey subKey = key.CreateSubKey(“SoftwareMySoft“); object width = subKey.GetValue(“Width“); / 读取窗

12、体的宽度 object Height = subKey.GetValue(“Height“); / 读取窗体的高度 / 如果宽度信息存在,则设置窗体的宽度 if (width != null) this.Width = (int)width; / 如果高度信息存在,则设置窗体的高度 if (Height != null) this.Height = (int)Height; subKey.Close(); private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) RegistryKey

13、key = Registry.LocalMachine; RegistryKey subKey =key.OpenSubKey( “SoftwareMySoft“,true);/ 保存窗体的宽度 subKey.SetValue(“Width“,this.Width); subKey.SetValue(“Height“,this.Height);/ 保存窗体的高度 subKey.Close(); /end of class /end of Namespaceprivate void Form1_Load(object sender, System.EventArgs e) RegistryKey

14、 key = Registry.LocalMachine; / 打开子键SoftwareMySoft,如不存在则创建 RegistryKey subKey = key.CreateSubKey(“SoftwareMySoft“); object width = subKey.GetValue(“Width“); / 读取窗体的宽度 object Height = subKey.GetValue(“Height“); / 读取窗体的高度 / 如果宽度信息存在,则设置窗体的宽度 if (width != null) this.Width = (int)width; / 如果高度信息存在,则设置窗体

15、的高度 if (Height != null) this.Height = (int)Height; subKey.Close(); private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) RegistryKey key = Registry.LocalMachine; RegistryKey subKey =key.OpenSubKey( “SoftwareMySoft“,true);/ 保存窗体的宽度 subKey.SetValue(“Width“,this.Width); subKey.SetValue(“Height“,this.Height);/ 保存窗体的高度 subKey.Close(); /end of class /end of Namespace上机练习n读取显示指定路径下面的指定扩展名的所有文 件。n例如输入C:WINNT和DLL,则输出界面输出 显示C:WINNT目录下所有扩展名为DLL的 文件路径全名。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 外语文库 > 英语学习

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号