| 
| 
 | Вопрос # 959/ вопрос решён / | 
 |  Доброго времени суток, уважаемые эксперты!Подскажите как определить количество дисков
 и возможность обращения кним.
 
|  |   Вопрос задал: Drozdov D.V. (статус: 4-ый класс)Вопрос отправлен: 5 октября 2007, 22:03
 Состояние вопроса: решён, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Drozdov D.V.!Для получения ответа на свой вопрос, вам нужно згать две вещи.
 1) дисков (точнее логических дисков) в системе не может быть больше 26 - по количеству букв.
 буквы A и B по умолчанию приняты для дисководов. Тоесть, нужно проверить каждую букву, а нет ли под этим именем диска.
 2) Для определения, что скрывается за буквой, поможет функция GetDriveType
 вот пример
 
 var d:char; s:string;
begin
  for d:='A' to 'Z' do begin
   case GetDriveType(PChar(d+':\')) of
   0: Result := '?';
    1: Result := 'Path does not exists';
      Drive_Removable: s := 'съемный';
      Drive_Fixed: s := 'фиксированый (внутри)';
      Drive_Remote: s := 'Удалённый';
      Drive_CDROM: s := 'CD-ROM';
      Drive_RamDisk: s := 'RAMDisk'
    else s := 'Unknown';
  end;
  Memo1.lines.add(c+' ' + s);
end;
end;
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 5 октября 2007, 23:51
 Оценка за ответ: 5
 |  Ответ #2. Отвечает эксперт: Feniks Здравствуйте, Drozdov D.V.!Дополнение к ответу "Вадим К".
 Самый простой способ получить список всех логических дисков смотрите в Приложении.
 Приложение:Переключить в обычный режим var  S : PChar;  i : integer;  str : string; begin   S := '';   str := '';   GetLogicalDriveStrings(255, S);   i := 0;   repeat     if S[i] = #0 then begin        ShowMessage(str);        Edit1.Text := str;        str := ''     end else        str := str + S[i];//         Edit1.Text := Edit1.Text + S[i];     inc(i);   until     (S[i] = #0) and (S[i-1] = #0);end; 
|  | Ответ отправил: Feniks (статус: Бакалавр)Время отправки: 8 октября 2007, 12:23
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 0. 31 января 2011, 19:29: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |