Array
(
)

Carregar numa variavel um valor do Registro do Windows

Anovat
   - 19 mar 2006

to querendo cria uma aplicação Delphi que o cara visualiza informações sobre seu computador, tipo ele abre o programa e o programa mostra...

mas as informações tao no Registro do windows...

entao, eu queria saber como carrega um registro do windows numa variavel, pra exibir...

eu sei mudar o registro, mas resgatar valores eu nao sei, alguem teria algum exemplo??


Paulocesar1301
   - 20 mar 2006

Amigo
Tenta usar esse procedimento... eu o uso em uma dll, mas obviamente funciona fora também :)

#Código


// Lê valor no Registro ===============================================
Function LeDoRegistro(Chave, Sequencia: WideString; ValorPadrao: Variant): Variant; Export; StdCall;
Var Reg: TRegistry;
begin
Try
Reg := TRegistry.Create;
Try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey(Chave, True);

Try
Try Result := Reg.ReadString(Sequencia); Except End;
Try Result := Reg.ReadInteger(Sequencia); Except End;
Try Result := Reg.ReadBool(Sequencia); Except End;
Except
Result := ValorPadrao;
End;

Finally
Reg.Free;
end;
Except
Result := ValorPadrao;
End;
end;
// Lê valor no Registro ===============================================


Use assim:
Variavel := LeDoRegistro(´SuaChaveDeRegistro´, ´SuaSequencia´, ´SeuValorPadrao´);


Paulocesar1301
   - 20 mar 2006

ATENTE PARA A LINHA:
Reg.RootKey := HKEY_CURRENT_USER;

Altere-a para a chave base que necessitar.

Abs,


Anovat
   - 20 mar 2006

brigadu pela ajuda amigo...

mas tipo, eu dei uma busca aki:

eu achei esse topico ake: http://forum.clubedelphi.net/viewtopic.php?t=42747&highlight=tregistry+create

o codigo do kra é bem menor...o seu tem esses de bool, e etc...


qual a diferença do seu codigo e do otro krinha???

o dele tá errado???


Paullsoftware
   - 20 mar 2006


Citação:
brigadu pela ajuda amigo...

mas tipo, eu dei uma busca aki:

eu achei esse topico ake: http://forum.clubedelphi.net/viewtopic.php?t=42747&highlight=tregistry+create

o codigo do kra é bem menor...o seu tem esses de bool, e etc...


qual a diferença do seu codigo e do otro krinha???

o dele tá errado???


é que o nosso amigo paulocesar1301 está lhe mostrando três formas de leitura...
Ler uma chave com conteúdo String;
#Código

Try Result := Reg.ReadString(Sequencia); Except End;

ler uma chave com o conteúdo sendo valor Inteiro
#Código
Try Result := Reg.ReadInteger(Sequencia); Except End;

ler uma chame com valor booleano
#Código
Try Result := Reg.ReadBool(Sequencia); Except End;

deu para enteder agora?

basicamente a linha para escrita é assim:
#Código

...
var
Reg : TRegistry;
begin
...
Reg.WriteString(´Nome da Chave´,´Valor´);
...


e para leitura assim:
#Código

...
var
Reg : TRegistry;
begin
...
Edit1.Text := Reg.ReadString(´Nome da Chave´,Edit1.Text);
...


espero que tenha entendido! :idea: :idea: :idea:


Paulocesar1301
   - 20 mar 2006

Amigos... é que utilizo esse procedimento em uma dll sem me preocupar com o tipo de dado que irei retornar, por isso as três linhas

Abs
:wink: