| 
| 
 | Вопрос # 67/ вопрос открыт / | 
 |  Возможно и в Delphi-программе открыть DVD дисковод? 
|  |   Вопрос задал: Иван-488 (статус: Посетитель)Вопрос отправлен: 27 июня 2006, 21:48
 Состояние вопроса: открыт, ответов: 3.
 |  Ответ #1. Отвечает эксперт: min@y™ Скачай пакет модулей DelphiWorks вот отсюда: http://www.torry.net/vcl/packs/middle/dw.zipТам есть модуль DriveWorks.pas, в котором, помимо прочего, есть вот такие 2 функции:
 
 function OpenCD(Drive: Char): Boolean;
 function CloseCD(Drive: Char): Boolean;
 
 О результатах работы этих функций сообщи на форум этого вопроса.
 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 28 июня 2006, 08:44
 
 |  Ответ #2. Отвечает эксперт: Косолапов Дмитрий Юрьевич Если не хочется использовать сторонние модули, вот две процедуры. 1-я получает список всех CD-ROM (я думаю, пригодится), а 2-я открывает/закрывает трей нужного диска. И не забудь подключить модуль mmsystem. Приложение:Переключить в обычный режим  procedure CDROMsList(var DrvLst:TStringList);var buf:array[0..255] of char;    tmp:string;begin if DrvLst=nil then DrvLst:=TStringList.Create; DrvLst.Clear; GetLogicalDriveStrings(256,buf); tmp:=''; for i:=0 to 254 do  begin   if buf[i]<>#0 then     tmp:=tmp+buf[i]   else    begin     if GetDriveType(pchar(tmp))=DRIVE_CDROM then      DrvLst.Add(tmp);     tmp:='';     if buf[i+1]=#0 then break;    end;  end;end;   procedure CloseEject(Drv:string;DoEject:boolean);var OpenParm:TMCI_OPEN_PARMS;    SetParm:TMCI_Set_Parms;    GenParm:TMCI_GENERIC_PARMS;    ID:integer; begin openparm.lpstrDeviceType:=pchar('CDAudio'); openparm.lpstrElementName:=pchar(Drv); if mciSendCommand(0, MCI_OPEN,MCI_OPEN_TYPE or MCI_WAIT or MCI_OPEN_ELEMENT, LongInt(@OpenParm))=0
then   begin    ID:=openparm.wDeviceID;    if DoEject then      mciSendCommand(ID,MCI_SET,MCI_WAIT or MCI_SET_DOOR_OPEN,LongInt(@SetParm))    else      mciSendCommand(ID,MCI_SET,MCI_WAIT or MCI_SET_DOOR_CLOSED,LongInt(@SetParm));    mciSendCommand(ID,MCI_CLOSE,0,LongInt(@GenParm));   end;end;
Ответ #3. Отвечает эксперт: Матвеев Игорь Владимирович Здравствуйте, Иван!Скажу Вам по секрету, открытие/закрытие DVD абсолютно ничем не отличается от открытия/закрытия CD, поскольку за это отвечает единый Media Control Interface (MCI), реализованный ввиде winmm.dll. Большинство функций реализуются через посылку командных строк в функцию mciSendStringA.
 Открыть привод: "set cdaudio door open"
 Закрыть привод: "set cdaudio door closed".
 Готовых примеров полно в Интернете.
 P.S. Просто добавил к предыдущим ответам, чтобы было понятно как это работает.
 
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 21 июля 2008, 21:15; участников в обсуждении: 1. 
|   | Аксион (статус: 4-ый класс), 21 июля 2008, 21:15 [#1]:А можно спросить как узнать отрыт в данный момент или закрыт дисковод? |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |