Delphi: HDD szériaszáma

Programozással kapcsolatos cikkek / Delphi (880 katt)

Esetleg szükségünk lehet arra, hogy megállapítsuk egy adott meghajtó - winchester - szériaszámát, de az eredetit, nem pedig azt amit a Windows ad neki formázáskor.

Erre például programok védelmekor lehet szükség.

Az alábbi kis program a HDD szériaszámát adja vissza String formátumban.

function Get_HDDSerialNumber():String;

var szOutBuffer : Array [0..40] of Char;
aIdBuffer : Array [0..IDENTIFY_BUFFER_SIZE-1] of Byte;
IdSector : TIdSector absolute aIdBuffer;
hDevice : THandle;
nIdSectorSize : LongInt;

begin
FillChar(aIdBuffer,SizeOf(aIdBuffer),#0);
hDevice := GetPhysicalDriveHandle( 0, GENERIC_READ or GENERIC_WRITE );
if hDevice=INVALID_HANDLE_VALUE then
begin
showmessage('hiba');
end
Else
Begin
If not SmartIdentifyDirect( hDevice, 0, IDE_ID_FUNCTION, IdSector,
nIdSectorSize ) Then
Begin
showmessage('hiba');
End;
End;

with IdSector do
begin
ChangeByteOrder( sSerialNumber, SizeOf(sSerialNumber) );
szOutBuffer[SizeOf(sSerialNumber)] := #0;
StrLCopy( szOutBuffer, sSerialNumber, SizeOf(sSerialNumber) );
result := Trim(szOutBuffer);
end;

CloseHandle(hDevice);
end;



A program a mindenkori Master HDD eszköznek a szériaszámát kérdezi le.

Előző oldal samuraj