terça-feira, 18 de maio de 2021

 PEGANDO NÚMERO DE SÉRIE DO HD E DA BIOS

Neste post irei mostrar duas funções que serão utilizadas para capturar o número de série do HD e da BIOS utilizando o Free Pascal Lazarus.

1º – Criaremos um novo projeto e montaremos a tela utilizando 2 labes, 2 edits e 2 buttons


2º- Agora criaremos a primeira função que será responsável por pegar o número de série do HD

function SerialNumHD(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;

3º- Agora criaremos a segunda função que será responsável por pegar o número de série da BIOS

function SerialNumBios: string;

var

  s: int64;

  i: longword;

  p: PChar;

begin

  i := 0;

  s := 0;

  p := PChar($F0000);

  repeat

    Inc(s, Ord(^p) shl i);

    if i < 64 then

      Inc(i)

    else

      i := 0;

    Inc(p);

  until p > PChar($FFFFF);

  Result := IntToHex(s, 16);

end;

4º- No botão Serial-HD iremos escrever o seguinte código

 edthd.Text := SerialNumHD('c');

5º- No botão Serial-BIOS iremos escrever o seguinte código

edtbios.Text:=SerialNumBios;

6º- Executar o programa e ver o resultado final


Lazarus: Propriedades E Eventos Da Edit

Componente Edit Lazarus As principais propriedades e eventos do componente Edit do Lazarus