天天看点

Win32 SDK注册表操作函数——RegQueryValueRegQueryValue

RegQueryValue

RegQueryValue

函数找回给定注册表键的默认值或未命名值所关联的数据。这个数据必须是一个以空字符结束的字符串。

这个函数与Windows 3.1兼容。基于Win32的应用程序应该使用

RegQueryValueEx

函数。

参数

hKey
当前打开的键或下列已确定保留句柄值: HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_LOCAL_MACHINE

HKEY_USERS

Windows NT:

HKEY_PERFORMANCE_DATA Windows 95和Windows 98: HKEY_DYN_DATA
lpSubKey
指向要被找回默认值的 hKey参数子键的名字的以空字符结束的字符串。如果这个参数为NULL或指向一个空字符串,那么这个函数找回能被 hKey识别的默认值。
lpValue

指向与给定值的默认值相关联的以空字符串结束的字符串的缓存区。

如果lpValue是NULL并且lpcbValue不是NULL,这个函数返回ERROR_SUCCESS,并取回被lpcbData指定的变量缓存的大小(以字节为单位)。这个为值的数据缓存分配最好的途径。

lpcbValue

以字节为单位,指向 lpData参数所指定地缓存区大小的变量。函数返回复制到 lpData的数据大小的变量(包含结束字符)。

如果被lpData参数指定的缓存不够大,这个函数返回ERROR_MORE_DATA值,并取回被lpcbData指定的变量缓存的大小(以字节为单位)。

在所有的案例中,在lpcbValue返回的值的大小包含字符串的结束符。

返回值

如果调用成功,返回ERROR_SUCCESS。

如果调用失败,返回一个非零错误码(定义在WINERROR.H)。你可以使用带有FORMAT_MESSAGE_FROM_SYSTEM标记的

FormatMessage

函数获得错误的普通描述信息。

注意

能被hKey参数识别的键必须被带有KEY_QUERY_VALUE存取权限打开(KEY_READ存取权限包括KEY_QUERY_VALUE存取权限)。

如果这个函数的ANSI版本被使用(明确的调用

RegQueryValueExA

或在包含WINDOWS.H文件前不定义UNICODE),这个函数在复制它到lpValue参数给定的缓存区前,转换存贮的Unicode字符串到ANSI字符串。

快速信息

  Windows NT:

需要3.1或更高版本。

  Windows:

需要Windows 95或更高版本。

  Windows CE:

不支持。

  头文件:

winreg.h。

  输入库:

advapi32.lib。

  Unicode:

在Windows NT中作为Unicode和ANSI执行。

参见

Registry Overview, Registry Functions,

RegEnumKey

,

RegEnumKeyEx

,

RegEnumValue

,

RegQueryInfoKey

,

RegQueryValueEx

,

RegSetValue

,

RegSetValueEx

继续阅读