Função que retorna o serial do HD – Delphi

A pedidos, segue uma função, desenvolvida em Delphi (5, 6 ou 7) capaz de retornar o número serial do HD (na verdade, de um volume em específico). Pode ser utilizado, para gerar senhas/códigos de liberação (com base em cálculos obviamente). Para usá-la/testá-la basta copiar e colar o código abaixo na área de implementation do formulário, e depois chamar a função do click de um button, por exemplo:

procedure TForm1.Button1Click(Sender: TObject);
begin

   Showmessage (SerialNum(‘c’));
end;

//Código da função, que deve ser colado no implementation do form, por exemplo

Function SerialNum(FDrive:String) :String;
   Var
      Serial:DWord;
      DirLen,Flags: DWord;
      DLabel : Array[0..11] of Char;
   begin
      Try
         GetVolumeInformation(PChar(FDrive+’:\’),dLabel,12,@Serial,DirLen,Flags,nil,0);
         Result := IntToHex(Serial,8);
      Except Result :=”;
   end;
end;