[VC++]注册表简单操作

[VC++]注册表简单操作

ID:38183676

大小:51.50 KB

页数:17页

时间:2019-06-07

[VC++]注册表简单操作_第1页
[VC++]注册表简单操作_第2页
[VC++]注册表简单操作_第3页
[VC++]注册表简单操作_第4页
[VC++]注册表简单操作_第5页
资源描述:

《[VC++]注册表简单操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、[VC++]注册表简单操作分类: [VC++]注册表2009-08-1814:24 224人阅读 评论(0) 收藏 举报Windows的注册表中包含了Windows的系统配置、PC机的硬件配置、Win32应用程序和用户的其他设置信息。注册表和INI文件不同,它是多层次的树状数据结构,具有六个分支(根键),每个分支又由许多的键和键值组成,而每个键则代表一个特定的配置项目。在注册表中键可以包括子键和值。我们可以对他做个比喻,键就是目录,而子键和值可以看成文件,这样比喻可能不科学但是很实际。在Windows 98下注册表包括在

2、两个文件内,他们是user.dat和system.dat两个文件。System.dat包括标准的系统信息,他们被保存在HKEY_LOCAL_MACHINE的根键内。User.dat文件包括用户指定的信息,如用户策略,桌面设定等等。  为了平时查看方便,Windows为我们准备了一个小程序regedit.exe。执行他就可以看到注册表的树状结构。在实际编程工作中,我们经常会遇到如何在Visual C++中对Windows注册表整个树状结构信息进行访问和修改的问题,如查询和修改注册表中用户姓名和公司名称的有关信息等。为此,本

3、实例将相关的注册表操作封装到函数中,并通过一个简单的例程给出了上述函数的调用方法,该例程可以在注册表中创建、删除、显示一个键值,同时还可以清空最近阅读过的文档历史记录。程序的界面效果如图一所示:图一、操作注册表示例程序界面效果图  一、实现方法  对注册表的编程要用到句柄,我们需要通过一个句柄访问注册表键值,当打开或创建一个键值的时候,会返回一个该键的句柄,并且调用和分析键和创建键值,在分析和创建的同时需要传递句柄到函数。WINDOWS提供预定义的用语---根一级键的保留句柄,如HKEY_CLASS_ROOT,HKEY_

4、CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USER等,这些都是与注册表的根键相对应并且同名的句柄。当访问一个根键的时候,传递这些通用句柄。这就不用打开根键啦,因为他们总是在打开状态下,可使用默认键的句柄访问。  Win32 API提供了大约25个有关注册表的函数,他提供了对注册表的读取,写入,删除,以及打开注册表的所有函数,并且可以实现对注册表备份,连接和对远端注册表进行查看等功能。但是在编程的时候首先需要考虑你是在什么操作系统编辑此类程序,虽然微软的操作系统,如NT和Windows98都

5、是32位操作系统,但是有些API函数中并不支持98,这点是要注意的。API经历和发展了很多年,有些函数已经重复,比如RegSetValue()及RegSetValueEx()都是用来设置注册表键值的,两者的区别在于前者是设置注册表键的默认值,仅支持作为数据类型的字符串,而后者不仅继承了前者的所有功能而且还能对多值或类型进行操作。一般API对比较新的函数都会在后缀追加"Ex"的同样名称函数,建议在编程中均应尽可能的使用高级函数。下面介绍一些比较常用的操作注册表的API函数:  1、RegCloseKey()  原型:Reg

6、CloseKey(HKEYhKey)  解释:关闭指定的注册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果,关闭一个键后,句柄变为非法,此时应释放句柄。  2、RegCreateKeyEx()  原型:LONGRegCreateKeyEx(HKEYhKey,LPCTSTRlpSubKey,DWORD Reserved,LPTSTRlpClass,DWORDdwOptions,REGSAMsamDesired, LPSECURITY_ATTRIBUTESlpSecurityAttribut

7、es,PHKEYphkResult,LPDWORD lpdwDisposition);  解释:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。提供该函数是为了向后兼容。所有的WIN32应用程序应使用函数RegCreateKeyEx()。各参数及返回值的含义如下:  各参数及返回值的含义如下: ·hKey为主键值,可以取下面的一些数值:HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG、  HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USE

8、R、HKEY_PERFORMANCE_DATA(WINNT操作系统)、HKEY_DYN_DATA(WIN9X操作系统);  ·参数lpSubKey为一个指向以零结尾的字符串的指针,其中包含将要创建或打开的子键的名称。子键不可以用反斜线(/)开始。该参数可以为NULL;  ·参数Reserved为保留值,必须设置为0;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。