UDF > WinAPIEx > Registry >


_WinAPI_RegOpenKey

Ouvre la clé de registre spécifiée

#include <WinAPIReg.au3>
_WinAPI_RegOpenKey ( $hKey [, $sSubKey = '' [, $iAccess = 0x000F003F]] )

Paramètres

$hKey Handle de la clé de Registre ouvert. Ce handle est retourné par la fonction _WinAPI_RegCreateKey() ou _WinAPI_RegOpenKey(), ou bien il peut être l'une des clés prédéfinies suivantes.
$HKEY_CLASSES_ROOT
$HKEY_CURRENT_USER
$HKEY_LOCAL_MACHINE
$HKEY_USERS
$sSubKey [optionnel] Le nom de la sous-clé de registre à ouvrir (voir remarques).
$iAccess [optionnel] Un masque qui spécifie les droits d'accès souhaités à la clé. La fonction échoue si le descripteur de sécurité de la clé ne permet pas l'accès demandé pour le processus appelant. Ce paramètre peut être une ou plusieurs des constantes $KEY_*. Par défaut, $KEY_ALL_ACCESS.

Valeur de retour

Succès: Retourne le handle de la clé ouverte.
Échec: Retourne 0 et définit @error <> 0, @extended peut contenir le code d'erreur du système.

Remarques

Contrairement à la fonction _WinAPI_RegCreateKey(), la fonction _WinAPI_RegOpenKey() ne crée pas la clé spécifiée si la clé n'existe pas dans le registre.

Si la clé n'est pas l'une des clés de registre prédéfinies ($HKEY_*), vous devez appeler la fonction _WinAPI_RegCloseKey() après que vous ayez fini d'utiliser le handle.

Les noms des clés ne sont pas sensibles à la casse.

Le paramètre $sSubKey peut être la chaîne vide.
Si $sSubKey est la chaîne vide et $hKey est HKEY_CLASSES_ROOT, le retour est le même handle $hKey passé à la fonction.
Sinon, le retour est un nouveau handle de la clé spécifiée par $hKey.

Le paramètre $sSubKey peut être NULL seulement si $hKey est l'une des clés prédéfinies.
Si $sSubKey est NULL et $hKey est HKEY_CLASSES_ROOT, le retour est un nouveau handle de la clé spécifiée par $hKey.
Sinon, le retour est le même handle $hKey passé à la fonction.

En relation

_WinAPI_RegCloseKey, _WinAPI_RegCreateKey

Voir aussi

Consultez RegOpenKeyEx dans la librairie MSDN.

Exemple

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

Local $hKey = _WinAPI_RegOpenKey($HKEY_CLASSES_ROOT, 'CLSID', $KEY_READ)
If @error Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), @extended, _WinAPI_GetErrorMessage(@extended))
    Exit
EndIf
Local $iCount = _WinAPI_RegQueryInfoKey($hKey)
Local $aKey[$iCount[0]]
For $i = 0 To UBound($aKey) - 1
    $aKey[$i] = _WinAPI_RegEnumKey($hKey, $i)
Next

_WinAPI_RegCloseKey($hKey)

_ArrayDisplay($aKey, '_WinAPI_RegEnumKey')