Problemas de Permissão no Registry

Delphi

23/03/2004

olá Pessoal
o problema é o seguinte..
tenho um sistema q é utilizado em empresas com Win 2003 Server e estações Win XP.
nas estações para realizar a instalação do setup do sistema o admin tem q se logar e rodar o mesmo, ja q usuarios comuns ñ conseguem rodar os executáveis.
esse setup por usa vez grava valores do no registro (Registry) que depois o meu programa terá que acessar para verificar algumas informações.
só que o problema é que os usuarios comuns que estão logados não tem permissão para acessar o registry, consequentemente o meu sistema tb não. Então acontece erro no meu programa pq ele não tem permissão pra acessar.
então voce teria lguma sugestão pra esse problema ?????

obs.:
utilizo o Inno Setup pra montar o instalador e Delphi7-Firebird1.5

abaixo o código de come acesso o registry


function Caminho_Dp : String;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey(´\Software\MyProg\Path´, false) then
begin
Result := Reg.ReadString(´Dp´);
end;
end;


abraço
Diogo


Diogoalles

Diogoalles

Curtidas 0

Respostas

Geno

Geno

23/03/2004

olá Pessoal o problema é o seguinte.. tenho um sistema q é utilizado em empresas com Win 2003 Server e estações Win XP. nas estações para realizar a instalação do setup do sistema o admin tem q se logar e rodar o mesmo, ja q usuarios comuns ñ conseguem rodar os executáveis. esse setup por usa vez grava valores do no registro (Registry) que depois o meu programa terá que acessar para verificar algumas informações. só que o problema é que os usuarios comuns que estão logados não tem permissão para acessar o registry, consequentemente o meu sistema tb não. Então acontece erro no meu programa pq ele não tem permissão pra acessar. então voce teria lguma sugestão pra esse problema ????? obs.: utilizo o Inno Setup pra montar o instalador e Delphi7-Firebird1.5 abaixo o código de come acesso o registry function Caminho_Dp : String; var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKey(´\Software\MyProg\Path´, false) then begin Result := Reg.ReadString(´Dp´); end; end; abraço Diogo



Ao inves do OpenKey, use o OpenKeyReadOnly:

function Caminho_Dp : String;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKeyReadOnly(´\Software\MyProg\Path´) then
begin
Result := Reg.ReadString(´Dp´);
end;
end;


GOSTEI 0
POSTAR