Google上有例子的 API GetDriveType GetDriveLetterhttp://lysoft.7u7.net
function GetDriverType(s: string): string; var typ: Integer; begin s:=s+':\'; typ := GetDriveType(PChar(s)); if Typ <> 0 then case typ of DRIVE_REMOVABLE: begin result:=('Drive Removable / Diskette'); end; DRIVE_FIXED: begin result:=('Drive fixed / Festplatte'); end; DRIVE_CDROM: begin result:=('CD ROM Drive'); end; DRIVE_RAMDISK: begin result:=('RAM Drive'); end; DRIVE_REMOTE: begin result:=('Remote Drive / Netzlaufwerk'); end; end; end;function myGetLogicalDrives: string; var drives: set of 0..25; drive: integer; begin Result := ''; DWORD(drives) := Windows.GetLogicalDrives; for drive := 0 to 25 do if drive in drives then Result := Result + Chr(drive + Ord('A')) + '(' + GetDriverType(Chr(drive + Ord('A'))) + ')'; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin edit1.Text := myGetLogicalDrives; end;
API
GetDriveType
GetDriveLetterhttp://lysoft.7u7.net
var
typ: Integer;
begin
s:=s+':\';
typ := GetDriveType(PChar(s));
if Typ <> 0 then
case typ of
DRIVE_REMOVABLE:
begin
result:=('Drive Removable / Diskette');
end;
DRIVE_FIXED:
begin
result:=('Drive fixed / Festplatte');
end;
DRIVE_CDROM:
begin
result:=('CD ROM Drive');
end;
DRIVE_RAMDISK:
begin
result:=('RAM Drive');
end;
DRIVE_REMOTE:
begin
result:=('Remote Drive / Netzlaufwerk');
end;
end;
end;function myGetLogicalDrives: string;
var
drives: set of 0..25;
drive: integer;
begin
Result := '';
DWORD(drives) := Windows.GetLogicalDrives;
for drive := 0 to 25 do
if drive in drives then
Result := Result + Chr(drive + Ord('A')) + '(' + GetDriverType(Chr(drive +
Ord('A'))) + ')';
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
edit1.Text := myGetLogicalDrives;
end;