Здравствуйте, уважаемые подписчики! Сегодня поговорим об определении
типа диска. Это может понадобиться, например, для поиска дисковода.
Для определения типа диска существует функция GetDriveType. А для
определения количетва дисков воспользуемся функцией GetLogicalDrives.
Она возвращает четырехбайтное число, каждый i-тый бит которого
определяет, существует ли i-тый диск. Первым диском считается диск
A:\, вторым - B:\ и т.д.
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
LogDrives: setof 0..25;
s: String;
begin
integer(LogDrives) := GetLogicalDrives;
for i := 0 to 25 doif (i in LogDrives) thenbegin
s := chr(i + 65) + ':\';
case GetDriveType(PChar(s)) of
1: s := s + ' does not exists';
DRIVE_REMOVABLE: s := s + ' DRIVE_REMOVABLE';
DRIVE_FIXED: s := s + ' DRIVE_FIXED';
DRIVE_REMOTE: s := s + ' DRIVE_REMOTE';
DRIVE_CDROM: s := s + ' DRIVE_CDROM';
DRIVE_RAMDISK: s := s + ' DRIVE_RAMDISK';
else s := s + ' cannot be determined';
end;
ListBox1.Items.Add(s);
end;
end;