tsmbios
1.0.0
SMBIOS (система управления системой) является стандартом, разработанным DMTF. Информация, хранящаяся в SMBIOS, включает производителя устройств, имя модели, серийный номер, версию BIOS, тег активов, процессоры, порты и память устройства.
Tsmbios Libary позволяет получить доступ к биографическому (SMBIOS) управлению системой (SMBIOS), используя объект Pascal Language (Delphi или Free Pascal).
Этот код демонстрирует, как получить информацию, связанную с устройствами памяти, установленными в системе.
{ $APPTYPE CONSOLE }
{ $R *.res }
uses
Classes,
SysUtils,
uSMBIOS in ' ....CommonuSMBIOS.pas ' ;
procedure GetMemoryDeviceInfo ;
Var
SMBios: TSMBios;
LMemoryDevice: TMemoryDeviceInformation;
begin
SMBios := TSMBios.Create;
try
WriteLn( ' Memory Device Information ' );
WriteLn( ' ------------------------- ' );
if SMBios.HasPhysicalMemoryArrayInfo then
for LMemoryDevice in SMBios.MemoryDeviceInformation do
begin
WriteLn(Format( ' Total Width %d bits ' ,[LMemoryDevice.RAWMemoryDeviceInfo.TotalWidth]));
WriteLn(Format( ' Data Width %d bits ' ,[LMemoryDevice.RAWMemoryDeviceInfo.DataWidth]));
WriteLn(Format( ' Size %d Mbytes ' ,[LMemoryDevice.GetSize]));
WriteLn(Format( ' Form Factor %s ' ,[LMemoryDevice.GetFormFactor]));
WriteLn(Format( ' Device Locator %s ' ,[LMemoryDevice.GetDeviceLocatorStr]));
WriteLn(Format( ' Bank Locator %s ' ,[LMemoryDevice.GetBankLocatorStr]));
WriteLn(Format( ' Memory Type %s ' ,[LMemoryDevice.GetMemoryTypeStr]));
WriteLn(Format( ' Speed %d MHz ' ,[LMemoryDevice.RAWMemoryDeviceInfo.Speed]));
WriteLn(Format( ' Manufacturer %s ' ,[LMemoryDevice.ManufacturerStr]));
WriteLn(Format( ' Serial Number %s ' ,[LMemoryDevice.SerialNumberStr]));
WriteLn(Format( ' Asset Tag %s ' ,[LMemoryDevice.AssetTagStr]));
WriteLn(Format( ' Part Number %s ' ,[LMemoryDevice.PartNumberStr]));
WriteLn;
if LMemoryDevice.RAWMemoryDeviceInfo.PhysicalMemoryArrayHandle> 0 then
begin
WriteLn( ' Physical Memory Array ' );
WriteLn( ' --------------------- ' );
WriteLn( ' Location ' +LMemoryDevice.PhysicalMemoryArray.GetLocationStr);
WriteLn( ' Use ' +LMemoryDevice.PhysicalMemoryArray.GetUseStr);
WriteLn( ' Error Correction ' +LMemoryDevice.PhysicalMemoryArray.GetErrorCorrectionStr);
if LMemoryDevice.PhysicalMemoryArray.RAWPhysicalMemoryArrayInformation.MaximumCapacity<>$ 80000000 then
WriteLn(Format( ' Maximum Capacity %d Kb ' ,[LMemoryDevice.PhysicalMemoryArray.RAWPhysicalMemoryArrayInformation.MaximumCapacity]))
else
WriteLn(Format( ' Maximum Capacity %d bytes ' ,[LMemoryDevice.PhysicalMemoryArray.RAWPhysicalMemoryArrayInformation.ExtendedMaximumCapacity]));
WriteLn(Format( ' Memory devices %d ' ,[LMemoryDevice.PhysicalMemoryArray.RAWPhysicalMemoryArrayInformation.NumberofMemoryDevices]));
end ;
WriteLn;
end
else
Writeln( ' No Memory Device Info was found ' );
finally
SMBios.Free;
end ;
end ;
begin
try
GetMemoryDeviceInfo;
except
on E:Exception do
Writeln(E.Classname, ' : ' , E.Message);
end ;
Writeln( ' Press Enter to exit ' );
Readln;
end .
Вы можете установить Delphinus Package Manager и установить Tsmbios в качестве пакета. (Delphinus-поддержка)