Ouvre la clé de registre spécifiée
#include <WinAPIReg.au3>
_WinAPI_RegOpenKey ( $hKey [, $sSubKey = '' [, $iAccess = 0x000F003F]] )
$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. |
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. |
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.
_WinAPI_RegCloseKey, _WinAPI_RegCreateKey
Consultez RegOpenKeyEx dans la librairie MSDN.
#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')