Ver Mensaje Individual
  #2  
Antiguo 30-04-2004
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Reputación: 0
tcp_ip_es Va por buen camino
Supongo que todo lo que pides lo puedes encontrar en el registro de windows, aqui te pongo un ejemplo de como acceder a él:


Código:
procedure TForm1.Button6Click(Sender: TObject);
var
  Reg : TRegistry;
begin
   Reg := TRegistry.Create;
   try
      Reg.RootKey := HKEY_Local_Machine;
      Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\',False);
      ShowMessage (Reg.ReadString('ProductID'));
   finally
      Reg.Free;
   end;
end;
te dejo tambien un ejemplo de como conocer la ip y la mac hecho por Francisco Charte:

Código:
procedure TForm1.Button15Click(Sender: TObject);
Type
     // Una estructura que une el estado del adaptador
     // con una matriz de estructuras TNameBuffer
  ASTAT = record
     adapt: TAdapterStatus;
     NameBuff: Array[0..29] Of TNameBuffer;
  end;
 Var
    Adaptador: ASTAT;
    Ncb: TNCB;
    Nombre: String;
    DatosSocket: WSAData;
    BloqueIP: PHostEnt;
    DirIP: in_addr;
 begin
    With Ncb Do // Inicializamos la estructura para ejecutar
     Begin // el comando NCBSTAT
       ncb_command := char(NCBASTAT);
       ncb_lana_num := char(0); // asumimos que sólo hay un adaptador
       ncb_callname := '*'; // y no facilitamos nombre
       ncb_buffer := @Adaptador; // dirección de la estructura para obtener
       ncb_length := sizeof(Adaptador); // los datos devueltos
     End;

    Netbios(@Ncb); // Llamada a NetBios

       // Mostramos los datos
    With Adaptador.adapt Do
       ShowMessage('La dirección MAC es: ' +
         IntToHex(Integer(adapter_address[0]), 2) +
         IntToHex(Integer(adapter_address[1]), 2) +
         IntToHex(Integer(adapter_address[2]), 2) +
         IntToHex(Integer(adapter_address[3]), 2) +
         IntToHex(Integer(adapter_address[4]), 2) +
         IntToHex(Integer(adapter_address[5]), 2));

    WSAStartup($0101, DatosSocket); // Inicializamos Windows sockets
    SetLength(Nombre, MAX_PATH); // y obtenemos el nombre de nuestro equipo
    gethostname(PChar(Nombre), MAX_PATH);
       // que usamos para obtener un bloque de información sobre IP
    BloqueIP := gethostbyname(PChar(Nombre));
       // del cual recuperamos la dirección
    CopyMemory(@DirIP, (BloqueIP^).h_addr_list^, BloqueIP.h_length);
    ShowMessage(inet_ntoa(DirIP)); // y la mostramos
 end;
recuerda poner en las uses la librerías correspondientes, en estos dos casos te valdría con: Registry, Nb30, Winsock

Espero haberte servido de ayuda, Saludos, Tony
Responder Con Cita