日期:2014-05-17  浏览次数:20940 次

关于注册表的用法
注册表的主要作用是什么呢,能不能举个例子说明一下。还有,C#在什么情况下需要操作注册表呢?能不能给个例子 给个代码讨论一下

------解决方案--------------------
regedit
饱受诟病的 windows的用来保存各种信息... 小到很多软件的最近文件记录, 系统的扩展名,怎么关联, 文件夹右键新建菜单有哪些项目,大到各种硬件配置信息

以前,有 超级兔子,优化大师,这些软件,大都是修改注册表项目,实现某种设置.  
因为注册表太臃肿,很多软件卸载不干净,注册表残留大量项目, 于是,也有了 很多注册表优化,减肥软件


c#什么时候需要操作注册表?  这个, 真是成也.Net败也.Net.  玩.Net,拖拖控件足以.注册表?老古董了,多麻烦.  

Registry Class

System.Object
  Microsoft.Win32.Registry

Namespace:  Microsoft.Win32
Assembly:  mscorlib (in mscorlib.dll)
------解决方案--------------------
软件使用配置文件将一些运行的参数从程序中独立出来允许根据用户或者系统环境的变化而更改。

配置文件最早使用ini文件保存,ini文件是一个文本文件,由[xxx]构成的小节和xxx=xxx为一行的配置项构成。每个软件有自己的配置文件,同时也可以访问系统的配置文件。

配置文件的缺点是,文本文件,效率低(在90年代看来),配置文件格式简单,不利于表示层次的数据,配置文件零散分布,不易管理。

于是Windows 95开始,微软推荐大家使用注册表保存配置信息,注册表项由一个根键(类似盘符),一个键(类似文件路径),一个项和它对应的值构成,注册表在逻辑上把所有的程序配置集中起来,它使用二进制格式,效率高,系统统一维护注册表的备份,提高了可靠性,注册表可以保存二进制数据。还可以分权限管理和远程管理(Windows NT)。

但是注册表的缺陷也是显而易见的,注册表是全局的,用户安装、移动和备份程序的时候往往忽视或者不知道怎么转移备份它。注册表随着系统的复杂而庞大,Windows XP甚至多到上百MB,注册表难以被用户理解,注册表项往往不能在程序卸载的时候被删除,从而只进不出成为垃圾。

所以.NET建议程序员使用配置文件(xml格式)保存程序的配置,程序的配置保存在appsettings文件夹下,用户的配置保存在profile文件夹下(Windows 7叫Users\UserName\LocalSettings文件夹)。xml的配置文件同样是层次的,可以存储二进制数据的,可以扩展和易于管理的,同时可以有效降低软件对系统的污染,易于管理和部署。