Ver Mensaje Individual
  #30  
Antiguo 17-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Tortuguica.

El número de serie lógico dado por MS-DOS/Windows a un disco rígido, está compuesto por ocho dígitos hexadecimales.

Te agrego otra función para obtenerlo:
Código Delphi [-]
function HDSerial(const lpRootPathName: PChar): string;
var
  lpMaximumComponentLength: DWORD;
  lpFileSystemFlags: DWORD;
  lpVolumeSerialNumber: DWORD;
  lpVolumeNameBuffer:  array[0..MAX_PATH] of Char;
begin
  GetVolumeInformation(PChar(lpRootPathName),
                       @lpVolumeNameBuffer,
                       SizeOf(lpVolumeNameBuffer),
                       @lpVolumeSerialNumber,
                       lpMaximumComponentLength,
                       lpFileSystemFlags, nil, 0);
  Result := IntToHex(HiWord(lpVolumeSerialNumber),4) +
            IntToHex(LoWord(lpVolumeSerialNumber),4);
end;

Llamada de ejemplo:
Código Delphi [-]
  ShowMessage(HDSerial('C:\'));

Si te interesa guardarlo cifrado en el registro, puse un ejemplo muy simple de como hacerlo al final de este hilo: Guardar datos en un ejecutable

Un saludo.

Edito:
El argumento debe ser 'Letra_Unidad:\' no 'Letra_Unidad:'. Por ejemplo: 'D:\' es correcto, 'D:' no.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-08-2011 a las 13:12:29. Razón: Agregar aclaración
Responder Con Cita