Home » Tipps & Tricks » System » Hardware » Seriennummer einer Partition ermitteln
Seriennummer einer Partition ermitteln
Folgende Funktion gibt die Seriennummer einer Partition zurück. Ihr muss als Parameter der entsprechende Laufwerksbuchstabe übergeben werden:
function GetSerialNumber(const ADrive: Char): Integer; var SerialNum: DWORD; Dummy: DWord; Buffer: array[0..255] of Char; begin Result := 0; if GetVolumeInformation(PChar(ADrive+':'), Buffer, SizeOf(Buffer), @SerialNum, Dummy, Dummy, nil, 0) then Result:=SerialNum else RaiseLastOSError; end;
Es handelt sich dabei nur um eine Nummer, die bei der Formatierung erzeugt wird, sie kann keinesfalls als eindeutige Identifizierung einer Festplatte dienen. Selbst einzelne Partitionen der physisch gleichen Festplatte bekommen andere Nummern zugewiesen.RaiseLastOSError ist erst ab Delphi 6 verfügbar. Programmierer, die mit älteren Versionen arbeiten müssen an dieser Stelle RaiseLastWin32Error verwenden.Aufgerufen werden kann die Funktion beispielsweise so:
procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := IntToHex(GetSerialNumber('C'), 8); end;
Der Rückgabewert wird als 8-stellige Hex-Zahl interpretiert.