function Get_DiskSerialNo(DriveID : char) : string;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
ps:PChar;
st:String;
dt:DWORD;
begin
ps:=PChar(DriveID + ':/');
GetVolumeInformation(ps,nil, 0, @VolumeSerialNumber,MaximumComponentLength, FileSystemFlags,nil, 0);
DT:=GetDriveType(ps);
st:='';
Case dt of
0:st:='Can not determined';
1:st:='Disk not existsed';
DRIVE_REMOVABLE:st:='REMOVABLED';
DRIVE_FIXED:st:='FIXED';
DRIVE_REMOTE:st:='REMOTE';
DRIVE_CDROM:st:='CDROM';
DRIVE_RAMDISK:st:='RAMDISK';
end;
result := IntToHex(HiWord(VolumeSerialNumber), 4) +'-' + IntToHex(LoWord(VolumeSerialNumber), 4)+' Type:'+st;
end;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
ps:PChar;
st:String;
dt:DWORD;
begin
ps:=PChar(DriveID + ':/');
GetVolumeInformation(ps,nil, 0, @VolumeSerialNumber,MaximumComponentLength, FileSystemFlags,nil, 0);
DT:=GetDriveType(ps);
st:='';
Case dt of
0:st:='Can not determined';
1:st:='Disk not existsed';
DRIVE_REMOVABLE:st:='REMOVABLED';
DRIVE_FIXED:st:='FIXED';
DRIVE_REMOTE:st:='REMOTE';
DRIVE_CDROM:st:='CDROM';
DRIVE_RAMDISK:st:='RAMDISK';
end;
result := IntToHex(HiWord(VolumeSerialNumber), 4) +'-' + IntToHex(LoWord(VolumeSerialNumber), 4)+' Type:'+st;
end;