Ler registro
Olá!
Meu objetivo é retornar o nome do windows. (Somente um exemplo prático, não quero isso realmente)
Tenho o seguinte código para ler dados do registro do windows (regedit):
Se eu executar essa procedure, ele me retorna o valor da chave, no caminho:
E não do caminho que eu quero realmente, que é:
Alguém sabe dizer o por quê isso ocorre ou alguma solução?
Meu objetivo é retornar o nome do windows. (Somente um exemplo prático, não quero isso realmente)
Tenho o seguinte código para ler dados do registro do windows (regedit):
procedure ReadRegistry;
var
Registry: TRegistry;
begin
Registry := TRegistry.Create;
Registry.RootKey := HKEY_LOCAL_MACHINE;
Registry.OpenKey('SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion', False);
ShowMessage(Registry.ReadString('ProductName'));
Registry.CloseKey;
Registry.Free;
end;Se eu executar essa procedure, ele me retorna o valor da chave, no caminho:
'SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion'
E não do caminho que eu quero realmente, que é:
'SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion'
Alguém sabe dizer o por quê isso ocorre ou alguma solução?
Vinicius
Curtidas 0
Respostas
Fabricio Kawata
06/09/2018
Fala Vinicius! Falando especificamente sobre dados do Sistema Operacional, desde a versão XE2 o Delphi conta com uma classe nativa que descreve o sistema operacional corrente. Ela é a TOSVersion, presente na unit SysUtils (System.SysUtils). Ela já traz propriedades que retornam o nome do SO (Name), a versão (Major e Minor), entre outras informações. Acredito que isso pode encurtar o seu trabalho. Abaixo deixo o link para o docwiki da Embarcadero que apresenta a classe.
http://docwiki.embarcadero.com/Libraries/XE2/en/System.SysUtils.TOSVersion
Espero ter te ajudado de alguma forma.
Abraço!
http://docwiki.embarcadero.com/Libraries/XE2/en/System.SysUtils.TOSVersion
Espero ter te ajudado de alguma forma.
Abraço!
GOSTEI 0
Vinicius
06/09/2018
Olá, obrigado pelo comentário!
Então, na verdade o que descrevi no tópico é só um exemplo mesmo, para que fique nítido o entendimento, mas o que eu realmente quero, é através de um software desenvolvido no delphi, criar um valor dentro da chave especificada.
Se eu trocar essa procedure para ao invés de ler, colocar para escrever no registro, ela vai executar sem erro algum, porém, como disse no tópico, os valores lidos/escritos são puxados de um outro caminho de chave.
Lê/Escreve nesse caminho:
Quero ler/escrever nesse caminho:
Então, na verdade o que descrevi no tópico é só um exemplo mesmo, para que fique nítido o entendimento, mas o que eu realmente quero, é através de um software desenvolvido no delphi, criar um valor dentro da chave especificada.
Se eu trocar essa procedure para ao invés de ler, colocar para escrever no registro, ela vai executar sem erro algum, porém, como disse no tópico, os valores lidos/escritos são puxados de um outro caminho de chave.
Lê/Escreve nesse caminho:
'SOFTWARE\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion'
Quero ler/escrever nesse caminho:
'SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion'
GOSTEI 0