Muitas vezes precisamos manipular pequenas quantidades de dados em nossas aplicações, como configurações, pequenas associações de dados, “recheio” de algum ListBox ou conceber qualquer idéia maluca que inventemos para melhorar a lógica de nosso software, onde a utilização de um banco de dados seria inviável.
De forma parecida como utilizamos arquivos INI, podemos utilizar também o próprio Registro do Windows (regedit.exe) para guardar esses dados. Porém esta abordagem é recomendada apenas para gravar configurações do programa, e não dados funcionais do programa. Afinal, não podemos encher o Registro do Windows com dados irrelevantes, pois isso afetaria diretamente o desempenho do sistema operacional.
Recomendação de uso:
Arquivos INI
– Dados funcionais do programa (conteúdo de Lists e Combos, textos e labels, configurações irrelevantes para o funcionamento do programa)
Registro do Windows
– Configurações do programa (flags, números de série, coordenadas de tela, dados que se deseje um difícil acesso pelo usuário e que sejam realmente importantes para o funcionamento do programa)
Para que possamos manipular essas informações no Registro do Windows, o Visual Basic nos fornece três funções: SaveSetting , GetSetting e DeleteSetting
As rotinas para manipular configurações no Registro do Windows seguem o mesmo padrão dos arquivos INI, onde existe uma seção, uma chave e um valor. Por definição, elas são sempre gravadas num endereço padrão dentro do Registro:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\
1 – SaveSetting – salvar configurações no registro
Sintaxe:
SaveSetting [Nome do Aplicativo], [Seção], [Chave], [Valor]
Exemplo:
SaveSetting "MeuPrograma", "Conf_Inicial", "Top", 200
Resultado no Registro do Windows:
2 – GetSetting – recuperar as configurações do registro (retorna um tipo String)
Sintaxe:
GetSetting( [Nome do Aplicativo], [Seção], [Chave] )
Exemplo:
Dim Retorno As String
Dim ValorTop As Integer
Retorno = GetSetting("MeuPrograma", "Conf_Inicial", "Top")
ValorTop = CInt(Retorno)
Uma observação que devemos fazer é que os dados manipulados, tanto para leitura quanto para escrita, são sempre texto (String). Ou seja, ao se gravar um número, ele vira String. Logo, para ler o mesmo, obteremos uma String que deveremos converter em número novamente.
3 – DeleteSetting – remover as configurações do registro
Sintaxe:
Excluir todas seções
DeleteSetting [Nome do Aplicativo]
Excluir uma seção inteira
DeleteSetting [Nome do Aplicativo], [Seção]
Excluir apenas uma chave
DeleteSetting [Nome do Aplicativo], [Seção], [Chave]
Exemplo:
'Deletar apenas a chave Top da seção Conf_Inicial
DeleteSetting "MeuPrograma", "Conf_Inicial", "Top"
'Deletar a seção Conf_Inicial e todas suas chaves
DeleteSetting "MeuPrograma", "Conf_Inicial"
'Deletar todas as seções e chaves do programa
DeleteSetting "MeuPrograma"
Algumas observações (casos críticos):
– SaveSetting em aplicativos, seções ou chaves inexistentes: sem problemas, ele apenas retorna uma String vazia “”;
– DeleteSetting para aplicativos, seções ou chaves inexistentes: cuidado, ocorre um erro de execução (Run-time error ‘5’).
Apenas uma recomendação: se o seu programa criar uma pasta de configurações no Registro do Windows ao ser instalado, é recomendável que você a remova no ato da desinstalação, para deixar o registro do usuário o mais limpo possível (que bom seria se todos os programas do mundo fizessem isso… mas sempre podemos fazer a nossa parte né). Até a próxima!