Begin {…} End

T.I. baseados em minha experiência pessoal.

Lendo tipos REG_MULTI_SZ do Registry do Windows

with 2 comments

Há umas 3 semanas recebi uma tarefa bem ingrata da minha chefia. Tinha que migrar um sistema de ORACLE para utilizar um outro SGBD. No caso, MSSQL Server Express. Fora todo trabalho de rescrever código SQL, trocar componentes (também mudei a forma de acesso ao SGBD de BDE para DBEXPRESS), ainda tive que fazer algumas mágicas, já que o dito programa tinha muitas particularidades e requisitos que eram muito mais chatos do que complexos.

Bem, resumindo, para atender uma dessas particularidades precisei ler informações do registry do windows. Ai começou meu problema porque me deparei com um tipo de dados que desconhecia. O famigerado REG_MULTI_SZ. Diferente do REG_SZ, o qual pode ter seu conteúdo armazenado em uma variável simples, o multi_sz não permitia essa ação.

Após muita pesquisa na internet descobri que este tipo de dado deve ser lido para um array. Mas também não era uma tarefa simples fazer isso. Então reunindo código de diversos exemplos consegui escrever uma função a qual compartilho o código fonte abaixo:

ReadREG_MULTI_SZ

ReadREG_MULTI_SZ

Como exemplo de uso veja o código a seguir:

var registro : TStringList;

begin

registro := TStringlist.Create;
LerREG_MULTI_SZ(HKEY_LOCAL_MACHINE, ‘SOFTWARE\Microsoft\Microsoft SQL Server’, ‘InstalledInstances’, registro);

Observe que é criada uma váriavel tipo TStringList, e os dados da chave tipo REG_MULTI_SZ são armazenados na propriedade STRINGS da STRINGLIST.

Bem, é isso. Dúvidas ? Escrevam nos comentários.

Clique aqui para baixar o código fonte da procedure.

Anúncios

Written by aristotelesfernando

21/01/2009 às 10:53

Publicado em Delphi, Windows Registry

2 Respostas

Subscribe to comments with RSS.

  1. Olá, gostei muito da sua dica e postei-a no meu blog, com os devidos créditos…

    deblugando

    21/01/2009 at 11:36

    • Valeu a força amigo. Acrescentei seu blog nos meus links.
      Um abraço.

      aristotelesfernando

      21/01/2009 at 11:43


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: