Função RegOpenKeyExA (winreg.h)
Abre a chave do Registro especificada. Observe que os nomes de chave não diferenciam maiúsculas de minúsculas.
Para executar operações de registro transacionadas em uma chave, chame a função RegOpenKeyTransacted
Sintaxe
LSTATUS RegOpenKeyExA(
[in] HKEY hKey,
[in, optional] LPCSTR lpSubKey,
[in] DWORD ulOptions,
[in] REGSAM samDesired,
[out] PHKEY phkResult
);
Parâmetros
[in] hKey
Um identificador para uma chave aberta do Registro. Esse identificador é retornado pela função RegCreateKeyEx
HKEY_CLASSES_ROOTHKEY_CURRENT_CONFIGHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERS
[in, optional] lpSubKey
O nome da subchave do Registro a ser aberta.
Os nomes de chave não diferenciam maiúsculas de minúsculas.
Se o parâmetro lpSubKey for NULL ou um ponteiro para uma cadeia de caracteres vazia e se hKey for uma chave predefinida, o sistema atualizará a chave predefinida e phkResult receberá o mesmo identificador hKey passado para a função. Caso contrário, phkResult receberá um novo identificador para a chave aberta.
Para obter mais informações, consulte limites de tamanho do elemento do Registro.
[in] ulOptions
Especifica a opção a ser aplicada ao abrir a chave. Defina esse parâmetro como zero ou o seguinte:
Valor | Significado |
---|---|
|
A chave é um link simbólico. Os links simbólicos do Registro só devem ser usados quando absolutamente necessário. |
[in] samDesired
Uma máscara que especifica os direitos de acesso desejados à chave a ser aberta. A função falhará se o descritor de segurança da chave não permitir o acesso solicitado para o processo de chamada. Para obter mais informações, consulte de Direitos de Acesso e Segurança de Chave do Registro.
[out] phkResult
Um ponteiro para uma variável que recebe um identificador para a chave aberta. Se a chave não for uma das chaves predefinidas do Registro, chame a função RegCloseKey depois de terminar de usar o identificador.
Valor de retorno
Se a função for bem-sucedida, o valor retornado será ERROR_SUCCESS.
Se a função falhar, o valor retornado será um código de erro diferente de zero definido em Winerror.h. Você pode usar a função
Nota
Em versões herdadas do Windows, essa API também é exposta por kernel32.dll.
Observações
Ao contrário da função RegCreateKeyEx, a função RegOpenKeyEx não criará a chave especificada se a chave não existir no registro.
Determinadas operações do Registro executam verificações de acesso no descritor de segurança da chave, não na máscara de acesso especificada quando o identificador para a chave foi obtido. Por exemplo, mesmo que uma chave seja aberta com um samDesired de KEY_READ, ela poderá ser usada para criar chaves do Registro se o descritor de segurança da chave permitir. Por outro lado, a função RegSetValueEx exige especificamente que a chave seja aberta com o KEY_SET_VALUE direito de acesso.
Se seu serviço ou aplicativo representar usuários diferentes, não use essa função com HKEY_CURRENT_USER. Em vez disso, chame a função RegOpenCurrentUser.
Observe que as operações que acessam determinadas chaves do Registro são redirecionadas. Para obter mais informações, consulte de Virtualização do Registro e dados de aplicativo de 32 bits e 64 bits no Registro.
Exemplos
lResult = RegOpenKeyEx (hKeyRoot, lpSubKey, 0, KEY_READ, &hKey);
if (lResult != ERROR_SUCCESS)
{
if (lResult == ERROR_FILE_NOT_FOUND) {
printf("Key not found.\n");
return TRUE;
}
else {
printf("Error opening key.\n");
return FALSE;
}
}
Para ver este exemplo no contexto, consulte Excluindo uma chave com subchaves.
Nota
O cabeçalho winreg.h define RegOpenKeyEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winreg.h (inclua Windows.h) |
biblioteca | Advapi32.lib |
de DLL |
Advapi32.dll |
Consulte também
RegCreateKeyEx
RegDeleteKey