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]