欢迎来到天天文库
浏览记录
ID:38118528
大小:175.64 KB
页数:4页
时间:2019-05-25
《利用C_操作注册表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利用C#操作注册表注册表项是注册表中的基本组织单位,好比是Windows资源管理器中的文件夹。每个具体的注册表项都可以有子项,就像文件夹下可以有子文件夹一样。只要用户具有相应的权限,且注册表项不是基项或基项的下一级项,就可以删除该注册表项。每个注册表项也可带有与其相关联的多个值(一个值就好比是一个文件),它们用于存储信息,例如,有关计算机上安装的应用程序的信息。每个值存储特定的信息,可按需要对其进行检索或更新。例如XXX可以为你的软件创建一个RegistryKey(在项HKEY_LOCAL_MACHINESoftware下),然后为您的公司创建的每个应用程序
2、创建一个子项。每个子项保存特定于该应用程序的信息,如颜色设置、屏幕位置和大小或者可识别的文件扩展名等。注意,存储在注册表中的信息可被其他应用程序和用户访问和修改,因此不要用注册表存储安全、敏感的数据或关键的应用程序信息。对于注册表的操作,主要包括注册表项的创建,打开与删除,键值的创建(修改),读取和删除,以及判断注册表项、键值是否存在。首先需要引入的命名空间是:usingMicrosoft.Win32;该命名空间下的类RegistryKey表示Windows注册表中的项级节点,此类是注册表封装。用于定位到注册表最开头的分支,另外一个类是Registry,提供表
3、示Windows注册表中的根项的RegistryKey对象,并提供访问项/值对的static方法。Registry公共字段对应注册表基项分支说明ClassesRootHKEY_CLASSES_ROOT定义文档的类型(或类)以及与那些类型关联的属性。CurrentUserHKEY_CURRENT_USER包含有关当前用户首选项的信息LocalMachineHKEY_LOCAL_MACHINE包含本地计算机的配置数据UsersHKEY_USERS包含有关默认用户配置的信息CurrentConfigHKEY_CURRENT_CONFIG包含有关非用户特定的硬件的配置
4、信息DynDataHKEY_DYN_DATA包含动态注册表数据PerformanceDataHKEY_PERFORMANCE_DATA包含软件组件的性能信息一、项的创建、打开和删除1.创建项例如在HKEY_LOCAL_MACHINE基项下的SOFTWARE项下创建一个新的项YourSoftware,可以采用如下代码:RegistryKeylm=Registry.LocalMachine;//对应HKEY_LOCAL_MACHINE基项分支RegistryKeysoftware=lm.OpenSubKey("SOFTWARE",true);//打开Softwar
5、e项RegistryKeyproduct=software.CreateSubKey("YourSoftware");关于OpenSubKey的第二个参数将在打开项中做详细介绍2.打开项其实在创建项的时候已经使用过了打开项的代码:RegistryKeylm=Registry.LocalMachine;//对应HKEY_LOCAL_MACHINE基项分支RegistryKeysoftware=lm.OpenSubKey("SOFTWARE",true);//打开Software项lm.Close();注意OpenSubKey的第二个参数表示writable,即是
6、否可写入,如果需要创建或者删除就应该使用true,一般读取用false。另外,如果请求的项不存在,则返回空引用,而不是引发异常。最后,关闭项就是Close()方法。这可以用下面的代码测试:RegistryKeylm=Registry.LocalMachine;RegistryKeys;try{s=lm.OpenSubKey("asdfaf",true);//试图打开不存在的项asdfafif(s==null)Console.WriteLine("returnvalueisnull!");}catch(Exception){Console.WriteLine("
7、Icatchanexception!");}运行的结果是没有捕捉到任何异常,而s确实为null。3.删除项必须具有适当权限才能删除子项及其目录树。RegistryKeylm=Registry.LocalMachine;//对应HKEY_LOCAL_MACHINE基项分支RegistryKeysoftware=lm.OpenSubKey("SOFTWARE",true);//打开Software项try{software.DeleteSubKeyTree("YourSoftware");//将移除目录树中该项下的所有项和键}catch(Exception){Co
8、nsole.WriteLine("De
此文档下载收益归作者所有