函数参考


_WinAPI_RegQueryValue

检索注册表项指定值名称的类型和数据.

#Include <WinAPIEx.au3>
_WinAPI_RegQueryValue ( $hKey, $sValueName, ByRef $tValueData, $iBytes )

参数

$hKey 打开的注册表项句柄,该键项必须已打开且有 KEY_QUERY_VALUE 访问权限.
 句柄由 _WinAPI_RegCreateKey() 或 _WinAPI_RegOpenKey() 函数返回.
 参数也可以为下列预定义项:
 $HKEY_CLASSES_ROOT --- 定义文件类型和类型相关的属性
 $HKEY_CURRENT_CONFIG --- 包含本地计算机系统目前的硬件配置文件
 $HKEY_CURRENT_USER --- 定义当前用户的参数选择
 $HKEY_LOCAL_MACHINE --- 定义计算机物理状态,包括总线类型、系统内存数据、并安装的硬件和软件
 $HKEY_PERFORMANCE_DATA --- 允许访问性能数据
 $HKEY_PERFORMANCE_NLSTEXT --- 注册表项附属参考文本字符串,描述计算机系统正在运行的本地语言
 $HKEY_PERFORMANCE_TEXT --- 注册表项附属参考文本字符串,描述语言为英语
 $HKEY_USERS --- 确定本地计算机新用户定义默认用户配置,并作为当前用户的用户配置
$sValueName 注册表值的名称.
如为空,函数检索无名键或默认值的类型和数据(如果存在)
$tValueData 接收值数据的结构(缓冲区)

返回值

成功: 返回复制到 $tValueData 的数据字节大小,
@extended 包含表示数据类型的代码($REG_*).
失败: 返回 0,设置 @error 标志为非 0 值, @extended 标志可能包含系统错误代码.

注意/说明

如果数据是 REG_SZ, REG_MULTI_SZ 或 REG_EXPAND_SZ 类型,
返回的大小包括任何终止空字符,除非数据没有终止字符.
 如果 $tValueData 指定的缓冲区不足以容纳数据,
 函数返回 ERROR_MORE_DATA(234),并返回所需缓冲区大小,
 此时缓冲区中的内容是不确定的.

相关

详情参考

在MSDN中搜索


示例/演示


#Include <APIConstants.au3>
#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

Global $hKey, $tData

$hKey = _WinAPI_RegOpenKey($HKEY_LOCAL_MACHINE, 'SOFTWARE\AutoIt v3\AutoIt', $KEY_QUERY_VALUE)
If @error Then
    MsgBox(16, @extended, _WinAPI_GetErrorMessage(@extended))
    Exit
EndIf
$tData = DllStructCreate('wchar[260]')
_WinAPI_RegQueryValue($hKey, 'InstallDir', $tData)
_WinAPI_RegCloseKey($hKey)

ConsoleWrite(DllStructGetData($tData, 1) & @CR)