mam taki kod
function ID: string;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
//zmien literke dysku na jaka tylko chcesz ;)
GetVolumeInformation('E:' i &zamiast e:\& che wstawic z edit1.text i niedziała , nil, 0, @VolumeSerialNumber, MaximumComponentLength,FileSystemFlags, nil, 0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + '-' + IntToHex(LoWord(VolumeSerialNumber), 4);
Result := SerialNumber;
end;