注册表编程扫盲(三)

原创 2004年10月05日 23:59:00
三。RegQueryValueEx和RegEnumValue
    以上都是在说如何写注册表,不过很多情况下都要读注册表的。啊,来看一下有哪几个API,1,2,...怎么又这么多?算了,就说两个吧,应该够用了的。还是先说一下RegQueryValueEx吧,这回看不出什么意思了,Query是什么意思呢?别急,我先查一下字典,Query,Query,查到了,字典说是"怀疑"的意思,好象解释不通啊。唉,还是不要查了,早知道就装金山快译了。不说废话了,还是直说用法算了。这个函数就是说已知一个数据项的名字,然后去访问它的值,来看看声明:
LONG RegQueryValueEx(
  HKEY hKey,           
  LPTSTR lpValueName,
  LPDWORD lpReserved, 
  LPDWORD lpType,
  LPBYTE lpData, 
  LPDWORD lpcbData 
);
hKey和lpValueName不说了,和RegSetValueEx的前两个参数意思是一样的,不明白的话,看上一章可以了:)

lpReserved:真是受不了啊!又是一个没用的参数,必须是NULL.

lpType,lpData,lpcbData:和RegSetValueEx的后面3个参数意思差不多的,只不过lpType和lpcbData要取地址。不多说了。不懂直接问我算了。

返回值?不用说,还是同上。
好了好了,说到哪里了?哦,该说RegEnumValue了,这个意思我懂,Enum就是枚举的意思,那这个函数就是枚举一个键下的所有值了。好了,开门见山,我就直说它怎么用了。
LONG RegEnumValue(
  HKEY hKey,             
  DWORD dwIndex,         
  LPTSTR lpValueName,    
  LPDWORD lpcbValueName, 
  LPDWORD lpReserved,     
  LPDWORD lpType,  
  LPBYTE lpData,   
  LPDWORD lpcbData 
);
有没搞错,又是这么多参数,受不了MS了。唉,没办法,还是一个一个的看吧。
hKey:不说了,同上。

dwIndex:就是索引号了从0开始的,0,1,2....一直下去,就可以找出所有的值了。

lpValueName:找到一个值后,它的名字就保存在这里了。显然是一个字符串。

lpcbValueName:就是lpValueName的长度了,别忘了取地址。

lpReserved:又一个保留的,NULL。

lpType:和RegSetValueEx的dwType差不多,不过这个要取地址,它告诉你这个值是什么类型的。

lpData,lpcbData,返回值:累死我了,不说了,同上。
好象说得不太清楚,不要怪我,不懂可以问我了。恩,还是举个例吧,实例最能说明问题(记不得谁说的了):
for (int i = 0;dwRes==0;i++) 
{
DWORD cbV=32,cbD=32;
BYTE szData[32];
char szValue[32];
dwRes = RegEnumValue(hk, i, szValue,&cbV, NULL, NULL,szData,&cbD); 
        ......//自己写

这一章就写到这里吧。

四。RegDeleteValue和RegDeleteKey
    太简单了,懒得说了,但为了对得起大家,还是说一下吧:
LONG RegDeleteKey(HKEY hKey,LPCTSTR lpSubKey);
LONG RegDeleteValue(HKEY hKey,LPCTSTR lpValueName);
就这么简单,一个删除键,一个删除值。不用我说了吧。

后记。
    不知不觉写了这么多,看一下表,哎哟,11点了,赶快睡觉。水平有限,写错了大家不要笑啊。<^_^>
等一下,我看写了多少个API:1,2,3...8个,不是很多,不当之处,高手指点一下啊。



网口扫盲一、二、三

网口扫盲一网口扫盲二网口扫盲三
  • iot_hept
  • iot_hept
  • 2015年11月04日 19:23
  • 488

注册表编程扫盲(二)

二。RegOpenKeyEx,以及RegCloseKey    先说一下RegOpenKeyEx,看字面的意思就知道是打开一个键,由于RegCreateKeyEx也可以打开一个键的,所以这个函数就有点...
  • s98
  • s98
  • 2004年10月05日 23:58
  • 1135

注册表编程扫盲(一)

前言        今天看了一本注册表方面的书,觉得还不错。特别还写了一章注册表编程。呵呵,我现在就我的理解把它贴上来给大家分享一下:)    什么是注册表我不用说了吧,反正大家都知道了。不知道?其实...
  • s98
  • s98
  • 2004年10月05日 23:58
  • 2338

注册表编程扫盲

前言        今天看了一本注册表方面的书,觉得还不错。特别还写了一章注册表编程。呵呵,我现在就我的理解把它贴上来给大家分享一下:)    什么是注册表我不用说了吧,反正大家都知道了。不知道?其实...
  • xiaoxiaohai123
  • xiaoxiaohai123
  • 2007年07月11日 12:59
  • 797

App知识扫盲

Cordova Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。 Cordova还提供了一组统一的Java...
  • NianChenCao
  • NianChenCao
  • 2017年06月08日 10:07
  • 233

windows注册表编程

Windows注册表 1 注册表的作用          注册表在windows中非常重要,它是一个庞大的数据库,里面保存了大量的系统信息,例如保存软件硬件的配置信息,计算机系统的设置,性能记录。  ...
  • zhuhuangtianzi
  • zhuhuangtianzi
  • 2014年08月13日 14:54
  • 1354

注册表编程快速入门

最近涉及到了一些注册表的编程,就把入门的一些东西整理一下,各位注册表新手一起来讨论讨论。欢迎留言! 文本的完整代码在http://download.csdn.net/detail/arvon2012...
  • arvon2012
  • arvon2012
  • 2012年08月07日 16:45
  • 1491

windows 注册表编程

注册表是windows操作系统中用来存储系统设置的数据库。里面存储一些例如系统语言、已安装软件的配置、系统硬件配置等信息。用户可以通过对注册表的增减、修改等操作使得系统达到自己所需的运行效果。wind...
  • julius819
  • julius819
  • 2011年10月17日 16:19
  • 2571

深度学习之从零带你入门(扫盲篇)

一、基本概念扫盲 人工智能、机器学习、神经网络、深度学习这些字眼相信一些人都见过,但是并不知道他们之间的关系,这里本人整理相关资料后给出较为准确的定义。 这里大家先看如下一张图: 正如上图所示,...
  • z4909801
  • z4909801
  • 2017年10月30日 22:38
  • 262

VS2010开发应用程序读写注册表

注册表是windows操作系统中用于管理存储系统设置的数据库,在应用程序开发过程中,用注册表为应用程序保存相关不经常变动的参数为普遍采用的方式。开发的应用程序可以在注册表中存储自己的数据,然后在开发的...
  • GuiH168
  • GuiH168
  • 2015年07月15日 11:31
  • 2076
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:注册表编程扫盲(三)
举报原因:
原因补充:

(最多只允许输入30个字)