Lendo informações da BIOS

25 de dezembro de 2020 Off Por Marcelo Martins

Neste artigo, explicarei como ler as informações da BIOS.

Existe um projeto, na minha opinião um dos poucos que realmente funciona.

https://github.com/RRUZ/tsmbios/blob/master/Common/uSMBIOS.pas

Este projeto, implementa uma camada, que permite ler as informações da BIOS do computador.

Com ela é possível acessar informações, como memória, temperatura, e tantas outras informações.

Um exemplo de uso, esta no projeto relógio, a função GetMemorySize lê a quantidade de memória disponível no seu PC.

function GetMemorySize : DWORD;
Var
SMBios : TSMBios;
LPhysicalMemArr : TPhysicalMemoryArrayInformation;
begin
SMBios:=TSMBios.Create;
try
if SMBios.HasPhysicalMemoryArrayInfo then
for LPhysicalMemArr in SMBios.PhysicalMemoryArrayInfo do
begin
if LPhysicalMemArr.RAWPhysicalMemoryArrayInformation^.MaximumCapacity<>$80000000 then
begin
result := LPhysicalMemArr.RAWPhysicalMemoryArrayInformation^.MaximumCapacity div 1024;
break;
end
else
begin
result :=LPhysicalMemArr.RAWPhysicalMemoryArrayInformation^.ExtendedMaximumCapacity div 1024;
break;
end;
end
else
result := 0;
finally
SMBios.Free;
end;
end;

Existem diversos exemplos de código nesta maravilhosa biblioteca, e vale a pena rever e estudar este código.