这个问题我已经回答过了。
//faint,为什么不搜索一下?
GetDriveType()AvailableDrives :dword; AvailableDrives := GetLogicalDrives;
for i:= 0 to 25 do
if GetBit(AvailableDrives,i+1)=1 then//如果驱动器存在
begin
DrivePath:=Char(Ord('A')+i)+':\';
case GetDriveType(pchar(DrivePath)) of
DRIVE_FIXED :....//如果是硬盘
DRIVE_CDROM :....//if Cd-rom,DrivePath就是光驱的盘符。
........
end;
end;
//faint,为什么不搜索一下?
GetDriveType()AvailableDrives :dword; AvailableDrives := GetLogicalDrives;
for i:= 0 to 25 do
if GetBit(AvailableDrives,i+1)=1 then//如果驱动器存在
begin
DrivePath:=Char(Ord('A')+i)+':\';
case GetDriveType(pchar(DrivePath)) of
DRIVE_FIXED :....//如果是硬盘
DRIVE_CDROM :....//if Cd-rom,DrivePath就是光驱的盘符。
........
end;
end;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
begin
if Drv[Length(Drv)] =':' then Drv := Drv + '\';
GetVolumeInformation(pChar(Drv),
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
Result := IntToHex(HiWord(VolumeSerialNumber), 4) +
'-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
end;