Passei um bom tempo para descobrir como alguns sistema pegava o nome do pc, do processador e etc. pesquisei na net não descobrir muita coisa não. Descobrir que alguns dados estavam no registros.

Então aprendir a ler os arquivo de registro, logo em seguida, o que deu mais trabalho, foi achar o local certo de onde ficava este arquivos.

 
Veja abaixo alguns exemplos:
 
Obs.: Você pode procurar ter acesso aos registros indo em iniciar <=> executar, digite "regedit" e aperte enter, faça um estudo sobre este registro, mas cuidado para não alterar nada, pois, pode causar erros na inicialização de algum programa ou até mesmo do windows

procedure TFrmHelpDesk.CapturandoDadosPC;
  Var Registro: TRegistry;
      TextoRegistro:string;
begin
  //Preparando a tabela

 

{Criei uma tabela chamada HelpDesk onde eu iria armazena alguns dados}
 


  DMTabelas.TblHelpDesk.Open;
  DMTabelas.TblHelpDesk.Insert;


{Nome do Processador}
{==============================================================================}
    registro:=tregistry.create;//Cria o objeto
    Registro.RootKey:=HKEY_LOCAL_MACHINE;
    registro.openkey('HARDWARE\DESCRIPTION\System\CentralProcessor\0',false);
    TextoRegistro:= Registro.ReadString('ProcessorNameString');
    DMTabelas.TblHelpDeskNomeProcessador.AsString := TextoRegistro;
    registro.Destroy;//Destroi o objeto para liberar da memória
{==============================================================================}


{Nome do Computador}
{==============================================================================}

    registro:=tregistry.create;//Cria o objeto
    Registro.RootKey:=HKEY_LOCAL_MACHINE;
    registro.openkey('SYSTEM\CurrentControlSet\control\ComputerName\ComputerName',false);
    TextoRegistro:= Registro.ReadString('ComputerName');
    DMTabelas.TblHelpDeskNomePCCham.AsString := TextoRegistro;
    registro.Destroy;//Destroi o objeto
{==============================================================================}

 (*---- Sistema do PC -----*)

 {Nome do OP}
{==============================================================================}
  registro:=tregistry.create;//Cria o objeto
  Registro.RootKey:=HKEY_LOCAL_MACHINE;
  registro.openkey('SOFTWARE\Microsoft\Windows NT\CurrentVersion',false);
  TextoRegistro:= Registro.ReadString('ProductName');
  DMTabelas.TblHelpDeskSistemaOP.AsString := TextoRegistro;
  registro.Destroy;//Destroi o objeto
{==============================================================================}

 {Nome do ID do OP}
{==============================================================================}
  registro:=tregistry.create;//Cria o objeto
  Registro.RootKey:=HKEY_LOCAL_MACHINE;
  registro.openkey(
'SOFTWARE\Microsoft\Windows NT\CurrentVersion',false);
  TextoRegistro:= Registro.ReadString('ProductId');
  DMTabelas.TblHelpDeskID_SistemaOP.AsString := TextoRegistro;
  registro.Destroy;
//Destroi o objeto
{==============================================================================}

 {Nome do Pasta do OP}
{==============================================================================}
  registro:=tregistry.create;//Cria o objeto
  Registro.RootKey:=HKEY_LOCAL_MACHINE;
  registro.openkey('SOFTWARE\Microsoft\Windows NT\CurrentVersion',false);
  TextoRegistro:= Registro.ReadString('PathName');
  DMTabelas.TblHelpDeskPastaWin.AsString := TextoRegistro;
  registro.Destroy;
//Destroi o objeto
{==============================================================================}

 {Nome do Versão de atualização do OP}
{==============================================================================}
  registro:=tregistry.create;//Cria o objeto
  Registro.RootKey:=HKEY_LOCAL_MACHINE;
  registro.openkey(
'SOFTWARE\Microsoft\Windows NT\CurrentVersion',false);
  TextoRegistro:= Registro.ReadString(
'CSDVersion');
  DMTabelas.TblHelpDeskVersaoWin.AsString := TextoRegistro;
  registro.Destroy;
//Destroi o objeto
{==============================================================================}

 {Nome do Usuario de Registro do OP}
{==============================================================================}
  registro:=tregistry.create;//Cria o objeto
  Registro.RootKey:=HKEY_LOCAL_MACHINE;
  registro.openkey('SOFTWARE\Microsoft\Windows NT\CurrentVersion',false);
  TextoRegistro:= Registro.ReadString('RegisteredOwner');
  DMTabelas.TblHelpDeskUsuRegWin.AsString := TextoRegistro;

  registro.Destroy;//Destroi o objeto
{==============================================================================}

 {Nome do organização do OP}
{==============================================================================}
  registro:=tregistry.create;//Cria o objeto
  Registro.RootKey:=HKEY_LOCAL_MACHINE;
  registro.openkey('SOFTWARE\Microsoft\Windows NT\CurrentVersion',false);
  TextoRegistro:= Registro.ReadString('RegisteredOrganization');
  DMTabelas.TblHelpDeskOrgRegWin.AsString := TextoRegistro;
 
registro.Destroy;//Destroi o objeto
{==============================================================================}

 {Usuário de Rede}
{==============================================================================}
 TextoRegistro:= UsuarioRede;
 DMTabelas.TblHelpDeskUsuRede.AsString:= TextoRegistro;
{==============================================================================}

 {IP atual}
{==============================================================================}
 TextoRegistro:= IPPC;
 DMTabelas.TblHelpDeskIP_PC.AsString:= TextoRegistro;
{==============================================================================}

end;

{==============================================================================}
{===================FIM DOS PROCEDIMENTOS PARTICULARES ========================}
{==============================================================================}

Logo em seguida chamei o procedimento em um btn novo, se não quiser criar um forme com as caixas de testo substitua a tabela por um showmessage só para testar e chave no evento onclick de um btn.
 
Espero ter ajudado e qualquer coisa meu email é: jaimeabreujr@hotmail.com

Fiquem com Deus