![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Список дисков [D7, WinXP]
Avsam © (2003-03-02 23:45:00)Как получить список логических дисков? C:, D:, G: и т.д.
Palladin (2003-03-03 01:10:00) [1]а вот кстати интересный кусочек из FileCtrl.pas
procedure TDriveComboBox.BuildList;
var
DriveNum: Integer;
DriveChar: Char;
DriveType: TDriveType;
DriveBits: set of 0..25;
procedure AddDrive(const VolName: string; Obj: TObject);
begin
Items.AddObject(Format("%s: %s",[DriveChar, VolName]), Obj);
end;
begin
{ fill list }
Clear;
Integer(DriveBits) := GetLogicalDrives;
for DriveNum := 0 to 25 do
begin
if not (DriveNum in DriveBits) then Continue;
DriveChar := Char(DriveNum + Ord("a"));
DriveType := TDriveType(GetDriveType(PChar(DriveChar + ":\")));
if TextCase = tcUpperCase then
DriveChar := Upcase(DriveChar);
case DriveType of
dtFloppy: Items.AddObject(DriveChar + ":", FloppyBMP);
dtFixed: AddDrive(VolumeID(DriveChar), FixedBMP);
dtNetwork: AddDrive(NetworkVolume(DriveChar), NetworkBMP);
dtCDROM: AddDrive(VolumeID(DriveChar), CDROMBMP);
dtRAM: AddDrive(VolumeID(DriveChar), RAMBMP);
end;
end;
end;
jack128 (2003-03-03 00:44:00) [2]DWORD GetLogicalDrives(VOID)
DWORD GetLogicalDriveStrings(
DWORD nBufferLength, // size of buffer
LPTSTR lpBuffer // address of buffer for drive strings
)