UDF > WinAPIEx > Registry >


_WinAPI_RegQueryValue

Obtient le type et la donnée pour nom de la valeur spécifiée associée à une clé de registre ouverte

#include <WinAPIReg.au3>
_WinAPI_RegQueryValue ( $hKey, $sValueName, ByRef $tValueData )

Paramètres

$hKey Handle de la clé de registre ouverte. La clé doit avoir été ouverte avec le droit d'accès KEY_QUERY_VALUE.
Ce handle est retourné par la fonction _WinAPI_RegCreateKey() ou _WinAPI_RegOpenKey(). Il peut également être l'une des clés prédéfinies suivantes:
$HKEY_CLASSES_ROOT
$HKEY_CURRENT_CONFIG
$HKEY_CURRENT_USER
$HKEY_LOCAL_MACHINE
$HKEY_PERFORMANCE_DATA
$HKEY_PERFORMANCE_NLSTEXT
$HKEY_PERFORMANCE_TEXT
$HKEY_USERS
$sValueName Le nom de la valeur de registre. Si $sValueName est la chaîne vide, la fonction récupère le type et la donnée de la valeur sans nom ou par défaut de la clé, le cas échéant.
$tValueData La structure (tampon) qui reçoit les données de la valeur. Cette structure doit être créée avant l'appel de fonction.

Valeur de retour

Succès: Retourne la taille de la donnée copiée dans $tValueData, en octets, @extended contiendra le code qui indique le type de données ($REG_*).
Échec: Retourne 0 et définit @error <> 0, @extended peut contenir le code d'erreur du système.

Remarques

Si les données ont le type REG_SZ, REG_MULTI_SZ ou REG_EXPAND_SZ, la taille retournée comprend les caractères de terminaison null, sauf si la donnée a été stockée sans eux.

Si la mémoire tampon spécifiée par le paramètre $tValueData n'est pas assez grand pour contenir les données, la fonction retourne ERROR_MORE_DATA (234) et retourne la taille de la mémoire tampon nécessaire. Dans ce cas, les contenus de la mémoire tampon sont indéfinis.

En relation

_WinAPI_RegCreateKey, _WinAPI_RegOpenKey

Voir aussi

Consultez RegQueryValueEx dans la librairie MSDN.

Exemple

#include <APIRegConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIError.au3>
#include <WinAPIReg.au3>

Local $hKey = _WinAPI_RegOpenKey($HKEY_LOCAL_MACHINE, 'SOFTWARE\AutoIt v3\AutoIt', $KEY_QUERY_VALUE)
If @error Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), @extended, _WinAPI_GetErrorMessage(@extended))
    Exit
EndIf

Local $tData = DllStructCreate('wchar[260]')
_WinAPI_RegQueryValue($hKey, 'InstallDir', $tData)
_WinAPI_RegCloseKey($hKey)

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