Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как оределить букву CD-ROM?


random ©   (2004-04-06 10:38:00) 

подскажите как оределить букву CD-ROM?
и что там uses?


http://my.samara.ru/~Delphi   (2004-04-15 17:48:00) [1]

procedure TForm1.Panel3Click(Sender: TObject);
var i:integer;
begin
 ComboBox1.Items.Clear;
for i:=65 to 90 do if GetDriveType(PChar(chr(i)+':\'))=DRIVE_CDROM then begin
 ComboBox1.Items.Add(chr(i));
 ComboBox1.ItemIndex:=0;
end;
end;


Ozone   (2004-04-06 13:52:00) [2]

TO Viperm [4]

А зачем весь алфавит перебирать? GetLogicalDriveStrings возвращает все что нужно...


Viperm   (2004-04-06 11:55:00) [3]

Мдааа.. у меня вот такая функция прокатывала :)



// Собсвенно сама функция
function GetCDDrv: boolean;
var
 ch: Char;
 drv_str: PChar;
 log_str: string;
begin
 result:=false;
 lstDrives.Clear;
 log_str:='';
 try
   // Перечисление всех возможных букв дисков
   for ch:='A' to 'Z' do begin
     drv_str:=PChar(string(ch)+':');
       // Если диск - CDROM
       if GetDriveType(drv_str)=DRIVE_CDROM then begin
       log_str:=log_str+' '+drv_str;
       lstDrives.Items.Add(drv_str+' ['+        GetDrvLabel(drv_str)+']');
       lstDrives.Checked[lstDrives.Count-1]:=true;
     end;
   end;
 finally
   // Если CDROM найдены, то
   if Trim(log_str)<>'' then begin
     AddToLog('Найдены устройства CDROM: '+log_str, false, false);
     GetTestingCD;
     result:=true;
   end else begin
     AddToLog('Устройства CDROM не найдены', false, true);
   end;
 end;
end;

// Определение метки диска
function GetDrvLabel(d_path: PChar): string;
var
 NoMatter : Cardinal;
 VolumeName: Array [0..MAX_PATH] of Char;
begin
 if MediaExists(d_path) then begin
   GetVolumeInformation(d_path, VolumeName, SizeOf(VolumeName),
     nil, NoMatter, NoMatter, Nil, 0);
   Result:=VolumeName;
 end else begin
   Result:='no disk';
 end;
end;


xShadow   (2004-04-06 11:40:00) [4]


> random ©   (06.04.04 11:28) [2]
> Нет, мне нужно, не всех дисков а именно CD, так чтоб программа
> самостоятельно определила привод а не я из списка выбирал

А ты описание погляди! F1.


random   (2004-04-06 11:28:00) [5]

Нет, мне нужно, не всех дисков а именно CD, так чтоб программа самостоятельно определила привод а не я из списка выбирал


Ozone   (2004-04-06 11:15:00) [6]

GetLogicalDriveStrings - получаешь буквы всех дисков
Пробугаешся по ним и смотришь GetDriveType


Наверх

Титульная страница Поиск, карта сайта Написать письмо