Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-04-2004
prodigios prodigios is offline
Registrado
 
Registrado: abr 2004
Posts: 6
Poder: 0
prodigios Va por buen camino
Como puedo obtener los siguientes datos?

Hola a todos muchas gracias de antemano.
No sabia donde incluir este hilo y por eso lo he colocado aqui, si este sitio no es el adecuado por favor hacedmelo saber. Gracias

Tengo un problema y es que necesito generar un ficherito de texto donde este incluida la siguiente informacion:

- Nº de serie de la tarjeta grafica
- Nº de serie de la placa base
- La MAC address de la tarjeta de red.
- Nº de serie y modelo del disco duro.

La verdad es que no tengo ni idea de como hacerlo y es urgente que consiga crear ese fichero de texto con esta información por eso si alguien pudiera ayudarme le estaria muy agradecido.

Sin mas muchas gracias por vuestra ayuda y colaboracion.

Un saludo
Responder Con Cita
  #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
Poder: 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
  #3  
Antiguo 30-04-2004
prodigios prodigios is offline
Registrado
 
Registrado: abr 2004
Posts: 6
Poder: 0
prodigios Va por buen camino
gracias por responder

gracias por responder pero los numeros que necesito no se encuentran en el registro de windows.

Muchas gracias por la funcion para la MAC me ha servido muchisimo.

Me gustria saber como conseguir los numeros de serie hardware que da el fabricante a cada dispositivo en concreto el de la placa base y el de la de video. La verdad es que necesito vouestra ayuda porque estoy muy perdido y es un trabajo urgente. Estoy buscando cosas pero no doy con nada concreto.

Muchisimas gracias por vuestro interes

Un saludo
Responder Con Cita
  #4  
Antiguo 01-05-2004
CRIS CRIS is offline
Miembro
 
Registrado: jul 2003
Posts: 63
Poder: 21
CRIS Va por buen camino
Hola aqui tienes para averiguar el numero de serie del disco duro, ya te queda menos jejeje.Salu2.CRIS.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
SpeedButton1: TSpeedButton;
Edit1: TEdit;
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
function GetVolumeID(DriveChar: Char): String;
var
MaxFileNameLength, VolFlags, SerNum: DWord;
begin
if GetVolumeInformation(PChar(DriveChar + ':\'), nil, 0,
@SerNum, MaxFileNameLength, VolFlags, nil, 0)
then
begin
Result := IntToHex(SerNum,8);
Insert('-', Result, 5);
end
else
Result := '';

end;
{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Label1.Caption:=GetVolumeId('c');

end;

end.

y de esta forma te dara los datos del disco duro en decimal:
------------------------------------------------

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
SpeedButton1: TSpeedButton;
Edit1: TEdit;
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
function GetVolumeID(DriveChar: Char): String;
var
MaxFileNameLength, VolFlags, SerNum: DWord;
begin
if GetVolumeInformation(PChar(DriveChar + ':/'), nil, 0,
@SerNum, MaxFileNameLength, VolFlags, nil, 0)
then
begin
Result := IntToStr(SerNum);
end
else
Result := '';
end;
{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Label1.Caption:=GetVolumeId('c');

end;

end.
Responder Con Cita
  #5  
Antiguo 03-05-2004
prodigios prodigios is offline
Registrado
 
Registrado: abr 2004
Posts: 6
Poder: 0
prodigios Va por buen camino
Muchas gracias por vuestra ayuda, ya he conseguido la MAC tambien, lo unico que me queda es el serial de la placa base y me estoy volviendo loco. Estoy utilizando llamadas a WMI pero no obtengo ningun resultado.

Muchas gracias por vuestra colaboracion de verdad.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:27:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi