Acesso ao Registro
O registro do Windows é um repositório de dados utilizado normalmente para armazenar configurações de programas instalados no sistema operacional e do próprio sistema, mas na real ele não faz distinção do que pode ser armazenado lá, já que suporta vários tipos de dados, incluindo textos, números e dados binários.
A estrutura do registro é parecida com um sistema de arquivos. As chaves são como as pastas e os valores são como os arquivos. Os dados de um valor são como o conteúdo dos arquivos.
O registro tem algumas chaves especiais em sua raiz. São elas:
As quatro primeiras chaves são as mais comuns. Dentro delas, é possível criar e ler subchaves e manipular seus valores. Vamos ver como fazer isso estudando a função RegCreateKey
.
RegCreateKey
Embora a Microsoft recomende utilizar a versão mais nova dessa função chamada RegCreateKeyEx
, muitos programas ainda utilizam a versão mais antiga, que estudaremos agora. Eis o protótipo da versão ASCII desta função:
Agora vamos aos parâmetros:
hKey [entrada]
Uma das chaves raíz, por exemplo: HKEY_CURRENT_USER
ou HKEY_LOCAL_MACHINE
(para essa o usuário rodando o programa precisa ter privilégios administrativos).
lpSubKey [entrada, opcional]
A subchave desejada, por exemplo, se o parâmetro hKey
HKEY_LOCAL_MACHINE
e lpSubKey
é Software\Microsoft\Windows\
, o caminho completo utilizado pela função será HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\
.
Alguns textos abreviam essas chaves raíz com as letras iniciais de seu nome. Por exemplo, HKCU
para HKEY_CURRENT_USER
, HKCR
para HKEY_CLASSES_ROOT
e HKLM
para HKEY_LOCAL_MACHINE
. Tais abreviaçõe são válidas para acesso ao registro através de programas como o Registry Editor (regedit.exe), mas não são válidas para código em C.
phkResult [saída]
Um ponteiro para uma váriável do tipo HKEY
, previamente alocada, pois é aqui que a função vai escrever o handle da chave criada ou aberta por ela.
Colocando tudo junto, se quisermos criar a sub-chave HKCU\Software\Mente Binária
, basta fazer:
Perceba que, assim como um handle para arquivo, o handle para chave também precisa ser fechado depois de seu uso.
RegSetKeyValue
Como o nome sugere, essa função configura um valor em uma chave. Seu protótipo é:
Já sabemos o que são os parâmetros hKey
e lpSubKey
. Nos restam então os seguintes:
lpValueName [entrada, opcional]
Um ponteiro para uma string contendo o nome do valor. Caso seja NULL
ou aponte para uma string vazia, o valor padrão da chave é considerado.
dwType [entrada]
O tipo do valor. Pode ser um dos seguintes:
lpData [entrada, opcional]
Os dados do valor, que deve ser casar com o tipo configurado no parâmetro dwType
.
cbData [entrada]
O tamanho dos dadoos do valor.
O código abaixo cria uma chave HKCU\Software\Mente Binária
, configura um valor "Habilitado" do tipo REG_DWORD
com o dado 1
e um valor "Website" do tipo REG_SZ
com o dado textual "https://menteb.in":
Last updated