注册表(C#)
Windowa注册表是包含Windows安装,用户喜好以及以安装软件和设备的所有配置信息的核心储存库。COM组件必须把它的信息出存在注册表中,才能被客户程序使用。注册表也包含了一些系统配置的信息,这些信息根据操作系统的不同而不同。注册表中的所有信息都是分类保存的,“主键”是各个大的信息分类名称,注册表中的所有信息均被分类存放在相应的主键中。一般包括5个主键:HKEY_CLASSES_ROOT(保存在系统中注册的各类文件的控制名以及文件关联等信息),HKEY_CURRENT_USER(保存登陆到系统的当前用户的计算机的环境变量,桌面设置,应用程序设置,个人程序设置,网络连接等信息),HKEY_LOCAL_MACHINE(保存计算机的硬件,软件及操作系统的配置信息),HKEY_USERS(保存计算机所有用户的配置信息),HKEY_CURRENT_CONFIG(存放计算机当前的硬件配置信息,此主键实际上是HKEY_LOCAL_MACHINE中的一部分)。
操作注册表之前要导入命名空间:using Microsoft.Win32
Registry类是其中的一个常用类,有7个字段:ClassRoot、CurrentConfig、CurrentUser、DynData、LacalMachine、Performanceata、Users
Registry类是通过静态的只读字段来提供RegistryKey实例的
如:RegistryKey rk=Registry.LacalMachine;
1.)用OpenSubKey方法打开注册表
private void Form1_Load(object sender, EventArgs e)
{
this.Box.Items.Clear();
//创建RegistryKey实例
RegistryKey rk = Registry.CurrentUser;
//使用OpenSubKey方法打开HKEY_CURRENT_USER\Software项下的所有子项
RegistryKey a = rk.OpenSubKey(@"Software");
foreach(string str in a.GetSubKeyNames())
{
this.Box.Items.Add("子项名:" + str);
RegistryKey b = a.OpenSubKey(str);
foreach(string c in b.GetValueNames())
{
this.Box.Items.Add(c + b.GetValue(c));
}
}
}
2.)创建及修改注册表信息
//创建RegistryKey实例
RegistryKey rk = Registry.CurrentUser;
//使用OpenSubKey方法打开HKEY_CURRENT_USER\Software项
RegistryKey a = rk.OpenSubKey("Software", true);
RegistryKey b = a.CreateSubKey("111");
b.SetValue("1", "2");
//修改注册表
b.SetValue("1", "3");
通常情况下,只允许在本机修改注册表,而不允许远程修改注册表
3.)删除注册表中信息
(1)DeleteSubKey方法:删除不包含任何子项的子项
(2)DeleteSubKeyTree方法:彻底删除指定的子项目录,包括该子项以及其以下的全部子项(谨慎使用)
(3)DeleteValue方法:删除指定的键值对
注册表(C#)的更多相关文章
- Win.ini和注册表的读取写入
最近在做打包的工作,应用程序的配置信息可以放在注册表文件中,但是在以前的16位操作系统下,配置信息放在Win.ini文件中.下面介绍一下Win.ini文件的读写方法和注册表的编程. 先介绍下Win.i ...
- 卸载oracle之后,如何清除注册表
之前卸载了oracle,今天偶然间发现,在服务和应用程序里面,还残存着之前的oracle服务.原来,还需要去清理下注册表. 在开始菜单的这个框里面 输入regedit,进入注册表.找到这个目录 HKE ...
- 利用注册表在右键添加VS15的快捷方式打开文件夹
1.简介 最近安装VS15 Preview 5,本版本可以打开"文件夹" 是否可以向Visual Studio Code一样在文件夹或文件右键菜单添加"Open with ...
- 修改策略组/注册表 屏蔽Win10升级解决方法
一.Windows非家庭版 第1步:按Win+R键调出运行对话框,输入命令“gpedit.msc”,按回车键启动组策略编辑器. 第2步:依次定位到“计算机配置→管理模板→Windows组件→Windo ...
- Windows 7安装软件时无法将注册值写入注册表的处理方法
1. 我们来确认一下,有没有安装什么软件把注册表给封了.如杀毒软件,防火墙等.把这些软件关了之后,再安装软件试试:如果不行,就把杀毒软件卸载了,再安装软件试试. 2. 更改组策略设置 步骤: 开始-运 ...
- MFC操作注册表
1.创建和修改注册表 BOOL CTestToolCtr::GetHkey(CString strHkey, HKEY& hkey) { == strHkey.CompareNoCase(_T ...
- Win 通过修改注册表把CapsLock映射为Rshift
成品: REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancod ...
- js通过注册表找到本地软件安装路径并且执行
场景:用js执行本地的安装软件,如果不存在就执行安装 操作步骤: 1.前台js代码 <script type="text/javascript"> function e ...
- 修改注册表 去除Windows快捷方式图标小箭头
一些朋友不喜欢Windows系统中快捷方式图标上面的小箭头,下面介绍如何修改注册表去除快捷方式图标上的小箭头. 1.开始->运行->输入regedit,启动注册表编辑器,然后; 2.依次展 ...
- 弥补学生时代的遗憾~C#注册表情缘
记得当时刚接触C#的时候,喜欢编写各种小软件,而注册表系列和网络系列被当时的我认为大牛的必备技能.直到我研究注册表前一天我都感觉他是那么的高深. 今天正好有空,于是就研究了下注册表系列的操作,也随手封 ...
随机推荐
- Java Socket
什么是Socket Socket的概念很简单,它是网络上运行的两个程序间双向通讯的一端,既可以接收请求,也可以发送请求,利用它可以较为方便地编写网络上数据的传递. 所以简而言之,Socket就是进程通 ...
- 译文---C#堆VS栈(Part One)
前言 本文主要是讲解C#语言在内存中堆.栈的使用情况,使读者能更好的理解值类型.引用类型以及线程栈.托管堆. 首先感谢原文作者:Matthew Cochran 为我们带来了一篇非常好的文章,并配以大量 ...
- Android学习——uses-sdk标签详解
1 前言 我们都知道,Android的版本在不断的迭代,并且每个版本都加入了不同的新特性.那么随着Android的用户量越来越多,Android的开发人员就必须熟悉Android各个版本的特性并且确保 ...
- A Beginner's Guide to Paxos
Google Drive: A Beginner's Guide to Paxos The code ideas of Paxos protocol: 1) Optimistic concurrenc ...
- 《App研发录》 源码
第1章源码: 1.1 重新规划Android项目结构 1.1.zip 1.2 为Activity定义新的生命周期 1.2.zip 1.3 统一事件编程模型 1.3.zip 1.4 实体化编程 1.4. ...
- Hystrix框架5--请求缓存和collapser
简介 在Hystrix中有个Request的概念,有一些操作需要在request中进行 缓存 在Hystrix调用服务时,如果只是查询接口,可以使用缓存进行优化,从而跳过真实访问请求. 应用 需要启用 ...
- 每天一个linux命令(47):iostat命令
Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...
- Android笔记——eclipse快捷键
查看快捷键定义的地方 Window->Preferences->General->Keys. 编辑相关快捷键 1. [ALT+/] 自动提示方法 此快捷键为用户编辑的好帮手,能为用户 ...
- angularjs自动化测试系列之jasmine
angularjs自动化测试系列之jasmine jasmine参考 html <!DOCTYPE html> <html lang="en"> <h ...
- VS创建MVC出错解决方法
搞定