Olá senhores,

Tenho um sistema que utiliza o registro do windows para armazenar alguns dados 
necessários para seu funcionamento, tais como: endereço do banco de dados, 
versão, etc...

Funciona perfeitamente em contas do windows com nivel de "administrador", 
porém, não permite escrita e nem leitura dos registros em "conta limitada".

Se alterar manualmente as permissões, via regedit, da chave do sistema 
(HKEY_LOCAL_MACHINE\Software\MeuPrograma), consigo também fazer leitura e 
escrita nos registros.

Logo, o que eu preciso é fazer isso automaticamente! Ao criar a chave no 
registro do windows, preciso definir permissão para todos os usuários poderem 
fazer leitura e escrita nesta chave específica.

Uso as funções abaixo para realizar leitura e escrita no registro do windows:

//gravar
//chamada da função
GravaRegistroString(HKEY_LOCAL_MACHINE,'Software\MeuPrograma','Banco','c:\banco');

//função
function GravaRegistroString(Raiz: Dword; Chave, Valor, Dado:string):boolean;
var Registro : TRegistry;
begin
   try
      Registro := TRegistry.Create;
      Registro.RootKey := Raiz;
      Registro.OpenKey (Chave, True);
      Registro.WriteString (valor, dado);
      Registro.CloseKey;
      Registro.Free;
      result := true;
   except
      result := false;
   end;
end;


//ler
//chamada da função
edit1.text := 
LeRegistroString(HKEY_LOCAL_MACHINE,'SOFTWARE\MeuPrograma','Banco');

//função 
function LeRegistroString(Raiz: Dword; Chave, Valor:string):string;
var Registro : TRegistry;
begin
   try
      Registro := TRegistry.Create;
      Registro.RootKey := Raiz;
      Registro.OpenKey (Chave, false);
      result := Registro.ReadString (valor);
      Registro.CloseKey;
      Registro.Free;
   except
      result := '';
   end;
end;


Muito obrigado a todos mais uma vez pela força!

 Daniel Vitor
Eng. de Computação

__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]

Responder a